From 75552fd896620a6fc006368df6b6830be538a188 Mon Sep 17 00:00:00 2001 From: shiziyuan9527 Date: Mon, 25 Jan 2021 18:02:47 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(=E6=B5=8B=E8=AF=95=E8=AE=A1=E5=88=92):?= =?UTF-8?q?=20=E6=89=A7=E8=A1=8C=E6=80=A7=E8=83=BD=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E7=8A=B6=E6=80=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/metersphere/track/service/LoadReportStatusEvent.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/io/metersphere/track/service/LoadReportStatusEvent.java b/backend/src/main/java/io/metersphere/track/service/LoadReportStatusEvent.java index 62364e0180..4229a5e17e 100644 --- a/backend/src/main/java/io/metersphere/track/service/LoadReportStatusEvent.java +++ b/backend/src/main/java/io/metersphere/track/service/LoadReportStatusEvent.java @@ -32,7 +32,8 @@ public class LoadReportStatusEvent implements LoadTestFinishEvent { @Override public void execute(LoadTestReport loadTestReport) { - if (StringUtils.equals(ReportTriggerMode.CASE.name(), loadTestReport.getTriggerMode())) { + if (StringUtils.equals(ReportTriggerMode.CASE.name(), loadTestReport.getTriggerMode()) + || StringUtils.equals(ReportTriggerMode.TEST_PLAN_SCHEDULE.name(), loadTestReport.getTriggerMode())) { if (StringUtils.equalsAny(loadTestReport.getStatus(), PerformanceTestStatus.Completed.name(), PerformanceTestStatus.Error.name())) { updateLoadCaseStatus(loadTestReport); From fb0af088c562f795149247e8b21328a50d793f83 Mon Sep 17 00:00:00 2001 From: fit2-zhao Date: Mon, 25 Jan 2021 18:04:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96):=20=E5=9C=BA=E6=99=AF=E6=95=B0=E6=8D=AE=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/HistoricalDataUpgradeService.java | 51 ++++++++++++++----- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/service/HistoricalDataUpgradeService.java b/backend/src/main/java/io/metersphere/api/service/HistoricalDataUpgradeService.java index 5190ba6dbd..6bfe58d770 100644 --- a/backend/src/main/java/io/metersphere/api/service/HistoricalDataUpgradeService.java +++ b/backend/src/main/java/io/metersphere/api/service/HistoricalDataUpgradeService.java @@ -65,6 +65,15 @@ public class HistoricalDataUpgradeService { } } + private MsScenario createScenarioByTest(ApiTest test) { + MsScenario scenario = new MsScenario(); + scenario.setName(test.getName()); + scenario.setReferenced("Upgrade"); + scenario.setResourceId(UUID.randomUUID().toString()); + scenario.setId(test.getId()); + return scenario; + } + private MsScenario createScenario(Scenario oldScenario) { MsScenario scenario = new MsScenario(); scenario.setOldVariables(oldScenario.getVariables()); @@ -147,6 +156,9 @@ public class HistoricalDataUpgradeService { BeanUtils.copyBean(element, request1); ((MsHTTPSamplerProxy) element).setProtocol(RequestType.HTTP); ((MsHTTPSamplerProxy) element).setArguments(request1.getParameters()); + List keyValues = new LinkedList<>(); + keyValues.add(new KeyValue("", "")); + ((MsHTTPSamplerProxy) element).setRest(keyValues); if (StringUtils.isEmpty(element.getName())) { element.setName(request1.getPath()); } @@ -251,9 +263,9 @@ public class HistoricalDataUpgradeService { return scenario; } - private ApiScenarioWithBLOBs checkNameExist(Scenario oldScenario, String projectId, ApiScenarioMapper mapper) { + private ApiScenarioWithBLOBs getScenario(String oldScenarioId, ApiScenarioMapper mapper) { ApiScenarioExample example = new ApiScenarioExample(); - example.createCriteria().andIdEqualTo(oldScenario.getId()); + example.createCriteria().andIdEqualTo(oldScenarioId); List list = mapper.selectByExampleWithBLOBs(example); if (list.size() > 0) { return list.get(0); @@ -333,20 +345,20 @@ public class HistoricalDataUpgradeService { copyDir(dir, BODY_FILE_DIR); } - private void createApiScenarioWithBLOBs(SaveHistoricalDataUpgrade saveHistoricalDataUpgrade, Scenario oldScenario, String scenarioDefinition, ApiScenarioMapper mapper, int num) { - if (StringUtils.isEmpty(oldScenario.getName())) { - oldScenario.setName("默认名称-" + DateUtils.getTimeStr(System.currentTimeMillis())); + private void createApiScenarioWithBLOBs(SaveHistoricalDataUpgrade saveHistoricalDataUpgrade, String id, String name, int total, String scenarioDefinition, ApiScenarioMapper mapper, int num) { + if (StringUtils.isEmpty(name)) { + name = "默认名称-" + DateUtils.getTimeStr(System.currentTimeMillis()); } - ApiScenarioWithBLOBs scenario = checkNameExist(oldScenario, saveHistoricalDataUpgrade.getProjectId(), mapper); + ApiScenarioWithBLOBs scenario = getScenario(id, mapper); if (scenario != null) { - scenario.setName(oldScenario.getName()); + scenario.setName(name); scenario.setProjectId(saveHistoricalDataUpgrade.getProjectId()); scenario.setTags(scenario.getTags()); scenario.setLevel("P0"); scenario.setModulePath(saveHistoricalDataUpgrade.getModulePath()); scenario.setApiScenarioModuleId(saveHistoricalDataUpgrade.getModuleId()); scenario.setPrincipal(Objects.requireNonNull(SessionUtils.getUser()).getId()); - scenario.setStepTotal(oldScenario.getRequests().size()); + scenario.setStepTotal(total); scenario.setScenarioDefinition(scenarioDefinition); scenario.setUpdateTime(System.currentTimeMillis()); scenario.setStatus(ScenarioStatus.Underway.name()); @@ -354,15 +366,15 @@ public class HistoricalDataUpgradeService { mapper.updateByPrimaryKeySelective(scenario); } else { scenario = new ApiScenarioWithBLOBs(); - scenario.setId(oldScenario.getId()); - scenario.setName(oldScenario.getName()); + scenario.setId(id); + scenario.setName(name); scenario.setProjectId(saveHistoricalDataUpgrade.getProjectId()); scenario.setTags(scenario.getTags()); scenario.setLevel("P0"); scenario.setModulePath(saveHistoricalDataUpgrade.getModulePath()); scenario.setApiScenarioModuleId(saveHistoricalDataUpgrade.getModuleId()); scenario.setPrincipal(Objects.requireNonNull(SessionUtils.getUser()).getId()); - scenario.setStepTotal(oldScenario.getRequests().size()); + scenario.setStepTotal(total); scenario.setScenarioDefinition(scenarioDefinition); scenario.setCreateTime(System.currentTimeMillis()); scenario.setUpdateTime(System.currentTimeMillis()); @@ -386,7 +398,9 @@ public class HistoricalDataUpgradeService { for (ApiTest test : blobs) { // 附件迁移 createBodyFiles(test.getId()); - + // 把test 生成一个场景,旧场景数据变成引用步骤 + MsScenario scenarioTest = createScenarioByTest(test); + LinkedList listSteps = new LinkedList<>(); List scenarios = JSON.parseArray(test.getScenarioDefinition(), Scenario.class); if (CollectionUtils.isNotEmpty(scenarios)) { // 批量处理 @@ -394,9 +408,20 @@ public class HistoricalDataUpgradeService { MsScenario scenario1 = createScenario(scenario); String scenarioDefinition = JSON.toJSONString(scenario1); num++; - createApiScenarioWithBLOBs(saveHistoricalDataUpgrade, scenario, scenarioDefinition, mapper, num); + createApiScenarioWithBLOBs(saveHistoricalDataUpgrade, scenario.getId(), scenario.getName(), scenario.getRequests().size(), scenarioDefinition, mapper, num); + MsScenario step = new MsScenario(); + step.setId(scenario1.getId()); + step.setName(scenario1.getName()); + step.setType("scenario"); + step.setResourceId(UUID.randomUUID().toString()); + step.setReferenced("REF"); + listSteps.add(step); } } + num++; + scenarioTest.setHashTree(listSteps); + String scenarioDefinition = JSON.toJSONString(scenarioTest); + createApiScenarioWithBLOBs(saveHistoricalDataUpgrade, scenarioTest.getId(), scenarioTest.getName(), listSteps.size(), scenarioDefinition, mapper, num); } sqlSession.flushStatements(); return null;