diff --git a/backend/src/main/java/io/metersphere/api/controller/ApiAutomationController.java b/backend/src/main/java/io/metersphere/api/controller/ApiAutomationController.java index 044508da51..fb49ac9127 100644 --- a/backend/src/main/java/io/metersphere/api/controller/ApiAutomationController.java +++ b/backend/src/main/java/io/metersphere/api/controller/ApiAutomationController.java @@ -90,6 +90,13 @@ public class ApiAutomationController { apiAutomationService.run(request); } + @PostMapping(value = "/run/batch") + public void runBatch(@RequestBody RunScenarioRequest request) { + request.setExecuteType(ExecuteType.Saved.name()); + apiAutomationService.run(request); + } + + @PostMapping("/getReference") public ReferenceDTO getReference(@RequestBody ApiScenarioRequest request) { return apiAutomationService.getReference(request); diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java b/backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java index db3cbf8834..b28ae07451 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java @@ -83,9 +83,7 @@ public class MsScenario extends MsTestElement { } } // 场景变量 - if (CollectionUtils.isNotEmpty(this.getVariables())) { - tree.add(arguments()); - } + tree.add(arguments(config)); if (CollectionUtils.isNotEmpty(hashTree)) { for (MsTestElement el : hashTree) { @@ -95,16 +93,23 @@ public class MsScenario extends MsTestElement { } - private Arguments arguments() { + private Arguments arguments(ParameterConfig config) { Arguments arguments = new Arguments(); arguments.setEnabled(true); arguments.setName(name + "Variables"); arguments.setProperty(TestElement.TEST_CLASS, Arguments.class.getName()); arguments.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("ArgumentsPanel")); - variables.stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue -> - arguments.addArgument(keyValue.getName(), keyValue.getValue(), "=") - ); + if (CollectionUtils.isNotEmpty(this.getVariables())) { + variables.stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue -> + arguments.addArgument(keyValue.getName(), keyValue.getValue(), "=") + ); + } + if (config != null && config.getConfig() != null && config.getConfig().getCommonConfig() != null + && CollectionUtils.isNotEmpty(config.getConfig().getCommonConfig().getVariables())) { + config.getConfig().getCommonConfig().getVariables().stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue -> + arguments.addArgument(keyValue.getName(), keyValue.getValue(), "=") + ); + } return arguments; } - } diff --git a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java index bf7077a9b0..2f620e1825 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java @@ -297,10 +297,6 @@ public class ApiAutomationService { testPlan.setHashTree(new LinkedList<>()); HashTree jmeterTestPlanHashTree = new ListedHashTree(); String projectID = request.getProjectId(); - // 批量执行的结果直接存储为报告 - if (apiScenarios.size() > 1) { - request.setExecuteType(ExecuteType.Saved.name()); - } boolean isOne = true; for (ApiScenarioWithBLOBs item : apiScenarios) { MsThreadGroup group = new MsThreadGroup(); diff --git a/frontend/src/business/components/api/automation/scenario/ApiScenarioList.vue b/frontend/src/business/components/api/automation/scenario/ApiScenarioList.vue index 6285b48fd6..f8b2f0ca09 100644 --- a/frontend/src/business/components/api/automation/scenario/ApiScenarioList.vue +++ b/frontend/src/business/components/api/automation/scenario/ApiScenarioList.vue @@ -6,7 +6,7 @@ :show-create="false"/> - +