diff --git a/backend/src/main/java/io/metersphere/api/service/ApiDefinitionExecResultService.java b/backend/src/main/java/io/metersphere/api/service/ApiDefinitionExecResultService.java index 49cc3e7613..cb9f1f61f9 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiDefinitionExecResultService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiDefinitionExecResultService.java @@ -7,6 +7,7 @@ import io.metersphere.base.domain.*; import io.metersphere.base.mapper.ApiDefinitionExecResultMapper; import io.metersphere.base.mapper.ApiDefinitionMapper; import io.metersphere.base.mapper.ApiTestCaseMapper; +import io.metersphere.base.mapper.TestCaseReviewApiCaseMapper; import io.metersphere.base.mapper.ext.ExtApiDefinitionExecResultMapper; import io.metersphere.commons.constants.ApiRunMode; import io.metersphere.commons.constants.DelimiterConstants; @@ -46,6 +47,8 @@ public class ApiDefinitionExecResultService { private TestCaseReviewApiCaseService testCaseReviewApiCaseService; @Resource private ApiDefinitionMapper apiDefinitionMapper; + @Resource + TestCaseReviewApiCaseMapper testCaseReviewApiCaseMapper; @Resource SqlSessionFactory sqlSessionFactory; @@ -66,18 +69,20 @@ public class ApiDefinitionExecResultService { boolean saved = true; if (saveResult == null) { saveResult = new ApiDefinitionExecResult(); - saveResult.setId(UUID.randomUUID().toString()); + saveResult.setId(result.getTestId()); saveResult.setActuator("LOCAL"); saveResult.setName(item.getName()); saveResult.setTriggerMode(triggerMode); saveResult.setType(type); - ApiDefinitionWithBLOBs apiDefinitionWithBLOBs = apiDefinitionMapper.selectByPrimaryKey(item.getName()); - if (apiDefinitionWithBLOBs != null) { - saveResult.setName(apiDefinitionWithBLOBs.getName()); - } else { - ApiTestCaseWithBLOBs caseWithBLOBs = apiTestCaseMapper.selectByPrimaryKey(item.getName()); - if (caseWithBLOBs != null) { - saveResult.setName(caseWithBLOBs.getName()); + if (!StringUtils.equals(type, ApiRunMode.API_PLAN.name())) { + ApiDefinition apiDefinition = apiDefinitionMapper.selectByPrimaryKey(item.getName()); + if (apiDefinition != null) { + saveResult.setName(apiDefinition.getName()); + } else { + ApiTestCaseWithBLOBs caseWithBLOBs = apiTestCaseMapper.selectByPrimaryKey(item.getName()); + if (caseWithBLOBs != null) { + saveResult.setName(caseWithBLOBs.getName()); + } } } if (StringUtils.isNotEmpty(result.getUserId())) { @@ -98,8 +103,22 @@ public class ApiDefinitionExecResultService { saveResult.setEndTime(item.getResponseResult().getResponseTime()); saveResult.setStatus(status); if (StringUtils.equals(type, ApiRunMode.API_PLAN.name())) { - testPlanApiCaseService.setExecResult(item.getName(), status, item.getStartTime()); - testCaseReviewApiCaseService.setExecResult(item.getName(), status, item.getStartTime()); + TestPlanApiCase testPlanApiCase = testPlanApiCaseService.getById(item.getName()); + String id = null; + if (testPlanApiCase != null) { + testPlanApiCaseService.setExecResult(item.getName(), status, item.getStartTime()); + id = testPlanApiCase.getApiCaseId(); + } + TestCaseReviewApiCase testCaseReviewApiCase = testCaseReviewApiCaseMapper.selectByPrimaryKey(item.getName()); + if (testCaseReviewApiCase != null) { + testCaseReviewApiCaseService.setExecResult(item.getName(), status, item.getStartTime()); + id = testCaseReviewApiCase.getApiCaseId(); + } + ApiTestCaseWithBLOBs caseWithBLOBs = apiTestCaseMapper.selectByPrimaryKey(id); + if (caseWithBLOBs != null) { + saveResult.setName(caseWithBLOBs.getName()); + saveResult.setResourceId(id); + } } // 清空上次执行结果的内容,只保留当前最新一条内容 diff --git a/backend/src/main/java/io/metersphere/track/service/TestPlanApiCaseService.java b/backend/src/main/java/io/metersphere/track/service/TestPlanApiCaseService.java index d5c863687a..31de746f55 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestPlanApiCaseService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestPlanApiCaseService.java @@ -339,7 +339,7 @@ public class TestPlanApiCaseService { if (caseWithBLOBs != null) { apiResult.setName(caseWithBLOBs.getName()); } - apiResult.setTriggerMode(TriggerMode.MANUAL.name()); + apiResult.setTriggerMode(TriggerMode.BATCH.name()); apiResult.setActuator("LOCAL"); if (request.getConfig() != null && StringUtils.isNotEmpty(request.getConfig().getResourcePoolId())) { apiResult.setActuator(request.getConfig().getResourcePoolId()); @@ -368,8 +368,8 @@ public class TestPlanApiCaseService { public void run() { for (TestPlanApiCase key : planApiCases) { try { - RunModeDataDTO modeDataDTO = null; - if (StringUtils.isNotBlank(request.getConfig().getResourcePoolId())) { + RunModeDataDTO modeDataDTO; + if (request.getConfig()!= null && StringUtils.isNotBlank(request.getConfig().getResourcePoolId())) { modeDataDTO = new RunModeDataDTO(key.getId(), UUID.randomUUID().toString()); } else { // 生成报告和HashTree diff --git a/frontend/src/business/components/api/definition/components/Run.vue b/frontend/src/business/components/api/definition/components/Run.vue index d34f842790..7d37df3c49 100644 --- a/frontend/src/business/components/api/definition/components/Run.vue +++ b/frontend/src/business/components/api/definition/components/Run.vue @@ -39,7 +39,7 @@ import ThreadGroup from "./jmeter/components/thread-group"; if (this.debug) { url = "/api/definition/report/get/" + this.runId + "/" + "debug"; } else { - url = "/api/definition/report/get/" + this.runId + "/" + "run"; + url = "/api/definition/report/get/" + this.runId; } this.$get(url, response => { if (response.data) { diff --git a/frontend/src/business/components/task/TaskCenter.vue b/frontend/src/business/components/task/TaskCenter.vue index 40347a0671..ef301d380e 100644 --- a/frontend/src/business/components/task/TaskCenter.vue +++ b/frontend/src/business/components/task/TaskCenter.vue @@ -45,7 +45,7 @@ 执行器:{{ item.actuator }} 由 {{ item.executor }} {{ item.executionTime | timestampFormatDate }} {{ getMode(item.triggerMode) }}
- + {{ item.executionStatus }} @@ -110,6 +110,9 @@ export default { color: String }, methods: { + format(item) { + return ''; + }, showTaskCenter() { this.init(); this.taskVisible = true; @@ -127,7 +130,6 @@ export default { return 100; } } - //return Math.round(Math.random() * 80 + 20); return 60; }, showReport(row, env) { @@ -271,6 +273,10 @@ export default { border-color: #783887; } +/deep/ .el-progress-bar { + padding-right: 20px; +} + /deep/ .el-menu-item { padding-left: 0; padding-right: 0;