diff --git a/backend/src/main/java/io/metersphere/api/controller/APITestController.java b/backend/src/main/java/io/metersphere/api/controller/APITestController.java index 9a0b8f1f41..c6dd7c5e5a 100644 --- a/backend/src/main/java/io/metersphere/api/controller/APITestController.java +++ b/backend/src/main/java/io/metersphere/api/controller/APITestController.java @@ -1,5 +1,6 @@ package io.metersphere.api.controller; +import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import io.metersphere.api.dto.*; @@ -10,6 +11,8 @@ import io.metersphere.api.dto.datacount.response.ApiDataCountDTO; import io.metersphere.api.dto.datacount.response.ExecutedCaseInfoDTO; import io.metersphere.api.dto.datacount.response.TaskInfoResult; import io.metersphere.api.dto.definition.RunDefinitionRequest; +import io.metersphere.api.dto.definition.request.ParameterConfig; +import io.metersphere.api.dto.scenario.environment.EnvironmentConfig; import io.metersphere.api.dto.scenario.request.dubbo.RegistryCenter; import io.metersphere.api.service.*; import io.metersphere.base.domain.*; @@ -34,10 +37,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; +import java.util.*; import static io.metersphere.commons.utils.JsonPathUtils.getListJson; @@ -70,6 +70,8 @@ public class APITestController { private CheckPermissionService checkPermissionService; @Resource private HistoricalDataUpgradeService historicalDataUpgradeService; + @Resource + private ApiTestEnvironmentService environmentService; @GetMapping("recent/{count}") public List recentTest(@PathVariable int count) { @@ -396,7 +398,18 @@ public class APITestController { @PostMapping(value = "/genPerformanceTestXml", consumes = {"multipart/form-data"}) public JmxInfoDTO genPerformanceTest(@RequestPart("request") RunDefinitionRequest runRequest, @RequestPart(value = "files") List bodyFiles) throws Exception { - HashTree hashTree = runRequest.getTestElement().generateHashTree(); + ParameterConfig config = new ParameterConfig(); + config.setProjectId(runRequest.getProjectId()); + + Map envConfig = new HashMap<>(); + Map map = runRequest.getEnvironmentMap(); + if (map != null && map.size() > 0) { + ApiTestEnvironmentWithBLOBs environment = environmentService.get(map.get(runRequest.getProjectId())); + EnvironmentConfig env = JSONObject.parseObject(environment.getConfig(), EnvironmentConfig.class); + envConfig.put(runRequest.getProjectId(), env); + config.setConfig(envConfig); + } + HashTree hashTree = runRequest.getTestElement().generateHashTree(config); String jmxString = runRequest.getTestElement().getJmx(hashTree); String testName = runRequest.getName(); diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanApiCaseMapper.java b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanApiCaseMapper.java index 361e802c8c..780e92f3b3 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanApiCaseMapper.java +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanApiCaseMapper.java @@ -19,4 +19,6 @@ public interface ExtTestPlanApiCaseMapper { List getNotRelevanceCaseIds(@Param("planId")String planId, @Param("relevanceProjectIds")List relevanceProjectIds); List getStatusByTestPlanId(String id); + + List selectIds(@Param("request") ApiTestCaseRequest request); } \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanApiCaseMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanApiCaseMapper.xml index 0f8ba32614..ac097aa055 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanApiCaseMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanApiCaseMapper.xml @@ -108,6 +108,97 @@ + + diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanScenarioCaseMapper.java b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanScenarioCaseMapper.java index 483dc83f09..f87aa9ae48 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanScenarioCaseMapper.java +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanScenarioCaseMapper.java @@ -1,14 +1,8 @@ package io.metersphere.base.mapper.ext; import io.metersphere.api.dto.automation.ApiScenarioDTO; -import io.metersphere.api.dto.automation.ApiScenarioRequest; import io.metersphere.api.dto.automation.TestPlanScenarioRequest; -import io.metersphere.api.dto.definition.ApiTestCaseRequest; -import io.metersphere.api.dto.definition.TestPlanApiCaseDTO; -import io.metersphere.base.domain.TestPlanApiCase; import io.metersphere.base.domain.TestPlanApiScenario; -import io.metersphere.track.dto.TestPlanDTO; -import io.metersphere.track.request.testcase.QueryTestPlanRequest; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -23,4 +17,6 @@ public interface ExtTestPlanScenarioCaseMapper { List getIdsByPlanId(String planId); List getNotRelevanceCaseIds(String planId, List relevanceProjectIds); + + List selectIds(@Param("request")TestPlanScenarioRequest request); } \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanScenarioCaseMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanScenarioCaseMapper.xml index 95c735f953..f372de0280 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanScenarioCaseMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanScenarioCaseMapper.xml @@ -87,6 +87,77 @@ + + + + + + + +