fix(测试计划): 修复测试计划使用默认环境执行时,执行环境只会收到每个项目最后一个环境的问题
修复测试计划使用默认环境执行时,执行环境只会收到每个项目最后一个环境的问题
This commit is contained in:
parent
62662ba23d
commit
2dac3d91be
|
@ -26,6 +26,9 @@ public class RunModeConfigDTO {
|
|||
* 运行环境
|
||||
*/
|
||||
private Map<String, String> envMap;
|
||||
|
||||
//测试计划整体执行时的默认环境
|
||||
private Map<String, List<String>> testPlanDefaultEnvMap;
|
||||
private String environmentType;
|
||||
private String environmentGroupId;
|
||||
//ui 测试
|
||||
|
|
|
@ -15,7 +15,7 @@ public class TestPlanReportRunInfoDTO {
|
|||
private String envGroupId;
|
||||
|
||||
private String runMode;
|
||||
private Map<String, String> requestEnvMap;
|
||||
private Map<String, List<String>> requestEnvMap;
|
||||
|
||||
// <测试计划场景关联表ID, <项目ID,环境ID>>
|
||||
private Map<String, Map<String, List<String>>> scenarioRunInfo;
|
||||
|
|
|
@ -20,6 +20,7 @@ public class TestPlanRunRequest {
|
|||
private boolean runWithinResourcePool;//是否选择资源池
|
||||
private String resourcePoolId;//资源池Id
|
||||
private Map<String, String> envMap;
|
||||
private Map<String, List<String>> testPlanDefaultEnvMap;
|
||||
private String environmentType;
|
||||
private String environmentGroupId;
|
||||
private List<String> testPlanIds;
|
||||
|
|
|
@ -271,7 +271,18 @@ public class TestPlanReportService {
|
|||
List<TestPlanApiScenarioInfoDTO> scenarios) {
|
||||
|
||||
TestPlanReportRunInfoDTO runInfoDTO = new TestPlanReportRunInfoDTO();
|
||||
runInfoDTO.setRequestEnvMap(config.getEnvMap());
|
||||
if (MapUtils.isNotEmpty(config.getEnvMap())) {
|
||||
//判断记录选择的环境还是默认环境
|
||||
Map<String, List<String>> requestEnvMap = new HashMap<>();
|
||||
for (Map.Entry<String, String> entry : config.getEnvMap().entrySet()) {
|
||||
requestEnvMap.put(entry.getKey(), new ArrayList<>() {{
|
||||
this.add(entry.getValue());
|
||||
}});
|
||||
}
|
||||
runInfoDTO.setRequestEnvMap(requestEnvMap);
|
||||
} else {
|
||||
runInfoDTO.setRequestEnvMap(config.getTestPlanDefaultEnvMap());
|
||||
}
|
||||
|
||||
final Map<String, String> runEnvMap = MapUtils.isNotEmpty(config.getEnvMap()) ? config.getEnvMap() : new HashMap<>();
|
||||
runInfoDTO.setRunMode(config.getMode());
|
||||
|
@ -1281,16 +1292,18 @@ public class TestPlanReportService {
|
|||
} else {
|
||||
if (MapUtils.isNotEmpty(runInfoDTO.getRequestEnvMap())) {
|
||||
Map<String, List<String>> projectEnvMap = new HashMap<>();
|
||||
for (Map.Entry<String, String> entry : runInfoDTO.getRequestEnvMap().entrySet()) {
|
||||
for (Map.Entry<String, List<String>> entry : runInfoDTO.getRequestEnvMap().entrySet()) {
|
||||
String projectId = entry.getKey();
|
||||
String envId = entry.getValue();
|
||||
List<String> envIdList = entry.getValue();
|
||||
Project project = baseProjectService.getProjectById(projectId);
|
||||
String projectName = project == null ? null : project.getName();
|
||||
String envNames = apiTestEnvironmentService.selectNameById(envId);
|
||||
if (StringUtils.isNotEmpty(projectName) && StringUtils.isNotEmpty(envNames)) {
|
||||
projectEnvMap.put(projectName, new ArrayList<>() {{
|
||||
this.add(envNames);
|
||||
}});
|
||||
if (StringUtils.isNotEmpty(projectName)) {
|
||||
List<String> envNameList = new ArrayList<>();
|
||||
for (String envId : envIdList) {
|
||||
String envName = apiTestEnvironmentService.selectNameById(envId);
|
||||
envNameList.add(envName);
|
||||
}
|
||||
projectEnvMap.put(projectName, envNameList);
|
||||
}
|
||||
}
|
||||
if (MapUtils.isNotEmpty(projectEnvMap)) {
|
||||
|
|
|
@ -840,7 +840,7 @@ public class TestPlanService {
|
|||
|
||||
//环境参数为空时,依据测试计划保存的环境执行
|
||||
if (((StringUtils.equals("GROUP", runModeConfig.getEnvironmentType()) && StringUtils.isBlank(runModeConfig.getEnvironmentGroupId()))
|
||||
|| (!StringUtils.equals("GROUP", runModeConfig.getEnvironmentType()) && MapUtils.isEmpty(runModeConfig.getEnvMap())))
|
||||
|| (!StringUtils.equals("GROUP", runModeConfig.getEnvironmentType()) && MapUtils.isEmpty(runModeConfig.getEnvMap()) && MapUtils.isEmpty(runModeConfig.getTestPlanDefaultEnvMap())))
|
||||
&& !StringUtils.equals(executionWay, ExecutionWay.RUN.name())) {
|
||||
TestPlanWithBLOBs testPlanWithBLOBs = testPlanMapper.selectByPrimaryKey(testPlanId);
|
||||
if (StringUtils.isNotEmpty(testPlanWithBLOBs.getRunModeConfig())) {
|
||||
|
@ -853,6 +853,7 @@ public class TestPlanService {
|
|||
Map<String, String> envMap = testPlanRunRequest.getEnvMap();
|
||||
String environmentGroupId = testPlanRunRequest.getEnvironmentGroupId();
|
||||
runModeConfig = getRunModeConfigDTO(testPlanRunRequest, envType, envMap, environmentGroupId, testPlanId);
|
||||
runModeConfig.setTestPlanDefaultEnvMap(testPlanRunRequest.getTestPlanDefaultEnvMap());
|
||||
if (!testPlanRunRequest.isRunWithinResourcePool()) {
|
||||
runModeConfig.setResourcePoolId(null);
|
||||
}
|
||||
|
@ -1637,6 +1638,7 @@ public class TestPlanService {
|
|||
String environmentGroupId = testplanRunRequest.getEnvironmentGroupId();
|
||||
String testPlanId = testplanRunRequest.getTestPlanId();
|
||||
RunModeConfigDTO runModeConfig = getRunModeConfigDTO(testplanRunRequest, envType, envMap, environmentGroupId, testPlanId);
|
||||
runModeConfig.setTestPlanDefaultEnvMap(testplanRunRequest.getTestPlanDefaultEnvMap());
|
||||
|
||||
String apiRunConfig = JSON.toJSONString(runModeConfig);
|
||||
return this.run(testPlanId, testplanRunRequest.getProjectId(),
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
:has-option-group="true"
|
||||
:group-id="runConfig.environmentGroupId"
|
||||
@setProjectEnvMap="setProjectEnvMap"
|
||||
@setDefaultEnv="setDefaultEnv"
|
||||
@setEnvGroup="setEnvGroup"
|
||||
ref="envSelectPopover"
|
||||
class="mode-row"
|
||||
|
@ -249,6 +250,7 @@ export default {
|
|||
testType: null,
|
||||
resourcePools: [],
|
||||
projectEnvListMap: {},
|
||||
defaultEnvMap: {},
|
||||
runConfig: {
|
||||
mode: "serial",
|
||||
reportType: "iddReport",
|
||||
|
@ -261,6 +263,7 @@ export default {
|
|||
retryEnable: false,
|
||||
retryNum: 1,
|
||||
browser: "CHROME",
|
||||
testPlanDefaultEnvMap: {},
|
||||
},
|
||||
projectList: [],
|
||||
projectIds: new Set(),
|
||||
|
@ -309,9 +312,11 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
open(testType, runModeConfig) {
|
||||
this.defaultEnvMap = {};
|
||||
if (runModeConfig) {
|
||||
this.runConfig = JSON.parse(runModeConfig);
|
||||
this.runConfig.envMap = new Map();
|
||||
this.runConfig.testPlanDefaultEnvMap = {};
|
||||
this.runConfig.onSampleError =
|
||||
this.runConfig.onSampleError === "true" ||
|
||||
this.runConfig.onSampleError === true;
|
||||
|
@ -368,6 +373,7 @@ export default {
|
|||
this.$emit("close");
|
||||
},
|
||||
handleRunBatch() {
|
||||
this.runConfig.testPlanDefaultEnvMap = this.defaultEnvMap;
|
||||
this.$emit("handleRunBatch", this.runConfig);
|
||||
this.close();
|
||||
},
|
||||
|
@ -376,6 +382,14 @@ export default {
|
|||
this.resourcePools = response.data;
|
||||
});
|
||||
},
|
||||
setDefaultEnv(projectId, envId) {
|
||||
let ids = this.defaultEnvMap[projectId];
|
||||
if (!ids) {
|
||||
ids = [];
|
||||
}
|
||||
ids.push(envId);
|
||||
this.defaultEnvMap[projectId] = ids;
|
||||
},
|
||||
setProjectEnvMap(projectEnvMap) {
|
||||
this.runConfig.envMap = projectEnvMap;
|
||||
},
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -264,6 +264,7 @@ export default {
|
|||
},
|
||||
initDefaultEnv() {
|
||||
this.selectedEnvName = new Map();
|
||||
let defaultEnv = new Map();
|
||||
this.evnList = [];
|
||||
this.projectIds.forEach((d) => {
|
||||
let item = {
|
||||
|
@ -307,7 +308,8 @@ export default {
|
|||
} else {
|
||||
this.selectedEnvName.get(d).push(filter[0].name);
|
||||
}
|
||||
this.chooseEnv(filter[0].id);
|
||||
|
||||
this.$emit("setDefaultEnv", d, filter[0].id);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue