fix (接口自动化): 修复场景步骤引用多个相同场景 执行结果重复问题 #1005615
--bug=1005615 --user=赵勇 【接口自动化】响应内... https://www.tapd.cn/55049933/s/1031900
This commit is contained in:
parent
bc913114e3
commit
4c5a27dece
|
@ -308,6 +308,14 @@ public abstract class MsTestElement {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getFullIndexPath(MsTestElement element, String path) {
|
||||||
|
if (element.getParent() == null) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
path = element.getIndex() + "_" + path;
|
||||||
|
return getFullIndexPath(element.getParent(), path);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isURL(String str) {
|
public boolean isURL(String str) {
|
||||||
try {
|
try {
|
||||||
if (StringUtils.isEmpty(str)) {
|
if (StringUtils.isEmpty(str)) {
|
||||||
|
|
|
@ -244,7 +244,8 @@ public class MsJDBCPostProcessor extends MsTestElement {
|
||||||
jdbcPostProcessor.setProperty(TestElement.TEST_CLASS, JDBCPostProcessor.class.getName());
|
jdbcPostProcessor.setProperty(TestElement.TEST_CLASS, JDBCPostProcessor.class.getName());
|
||||||
jdbcPostProcessor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
jdbcPostProcessor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||||
jdbcPostProcessor.setProperty("MS-ID", this.getId());
|
jdbcPostProcessor.setProperty("MS-ID", this.getId());
|
||||||
jdbcPostProcessor.setProperty("MS-RESOURCE-ID", this.getResourceId()+ "_" + this.getIndex());
|
String indexPath = this.getIndex();
|
||||||
|
jdbcPostProcessor.setProperty("MS-RESOURCE-ID", this.getResourceId() + "_" + this.getFullIndexPath(this.getParent(), indexPath));
|
||||||
List<String> id_names = new LinkedList<>();
|
List<String> id_names = new LinkedList<>();
|
||||||
this.getScenarioSet(this, id_names);
|
this.getScenarioSet(this, id_names);
|
||||||
jdbcPostProcessor.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
jdbcPostProcessor.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
||||||
|
|
|
@ -244,7 +244,8 @@ public class MsJDBCPreProcessor extends MsTestElement {
|
||||||
jdbcPreProcessor.setProperty(TestElement.TEST_CLASS, JDBCPreProcessor.class.getName());
|
jdbcPreProcessor.setProperty(TestElement.TEST_CLASS, JDBCPreProcessor.class.getName());
|
||||||
jdbcPreProcessor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
jdbcPreProcessor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||||
jdbcPreProcessor.setProperty("MS-ID", this.getId());
|
jdbcPreProcessor.setProperty("MS-ID", this.getId());
|
||||||
jdbcPreProcessor.setProperty("MS-RESOURCE-ID", this.getResourceId()+ "_" + this.getIndex());
|
String indexPath = this.getIndex();
|
||||||
|
jdbcPreProcessor.setProperty("MS-RESOURCE-ID", this.getResourceId() + "_" + this.getFullIndexPath(this.getParent(), indexPath));
|
||||||
List<String> id_names = new LinkedList<>();
|
List<String> id_names = new LinkedList<>();
|
||||||
this.getScenarioSet(this, id_names);
|
this.getScenarioSet(this, id_names);
|
||||||
jdbcPreProcessor.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
jdbcPreProcessor.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
||||||
|
|
|
@ -141,7 +141,8 @@ public class MsDubboSampler extends MsTestElement {
|
||||||
sampler.setProperty(TestElement.TEST_CLASS, DubboSample.class.getName());
|
sampler.setProperty(TestElement.TEST_CLASS, DubboSample.class.getName());
|
||||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("DubboSampleGui"));
|
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("DubboSampleGui"));
|
||||||
sampler.setProperty("MS-ID", this.getId());
|
sampler.setProperty("MS-ID", this.getId());
|
||||||
sampler.setProperty("MS-RESOURCE-ID", this.getResourceId()+ "_" + this.getIndex());
|
String indexPath = this.getIndex();
|
||||||
|
sampler.setProperty("MS-RESOURCE-ID", this.getResourceId() + "_" + this.getFullIndexPath(this.getParent(), indexPath));
|
||||||
List<String> id_names = new LinkedList<>();
|
List<String> id_names = new LinkedList<>();
|
||||||
this.getScenarioSet(this, id_names);
|
this.getScenarioSet(this, id_names);
|
||||||
sampler.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
sampler.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
||||||
|
|
|
@ -158,7 +158,7 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
if(StringUtils.isEmpty(this.getEnvironmentId())){
|
if (StringUtils.isEmpty(this.getEnvironmentId())) {
|
||||||
this.setEnvironmentId(this.useEnvironment);
|
this.setEnvironmentId(this.useEnvironment);
|
||||||
}
|
}
|
||||||
// 非导出操作,且不是启用状态则跳过执行
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
@ -182,7 +182,8 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
||||||
sampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
|
sampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
|
||||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("HttpTestSampleGui"));
|
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("HttpTestSampleGui"));
|
||||||
sampler.setProperty("MS-ID", this.getId());
|
sampler.setProperty("MS-ID", this.getId());
|
||||||
sampler.setProperty("MS-RESOURCE-ID", this.getResourceId()+ "_" + this.getIndex());
|
String indexPath = this.getIndex();
|
||||||
|
sampler.setProperty("MS-RESOURCE-ID", this.getResourceId() + "_" + this.getFullIndexPath(this.getParent(), indexPath));
|
||||||
List<String> id_names = new LinkedList<>();
|
List<String> id_names = new LinkedList<>();
|
||||||
this.getScenarioSet(this, id_names);
|
this.getScenarioSet(this, id_names);
|
||||||
sampler.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
sampler.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
||||||
|
@ -253,7 +254,7 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(hashTree)) {
|
if (CollectionUtils.isNotEmpty(hashTree)) {
|
||||||
for (MsTestElement el : hashTree) {
|
for (MsTestElement el : hashTree) {
|
||||||
if(this.getEnvironmentId() == null || el.getEnvironmentId() == null){
|
if (this.getEnvironmentId() == null || el.getEnvironmentId() == null) {
|
||||||
el.setEnvironmentId(useEnvironment);
|
el.setEnvironmentId(useEnvironment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,7 +271,7 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
||||||
private HttpConfig getHttpConfig(ParameterConfig config) {
|
private HttpConfig getHttpConfig(ParameterConfig config) {
|
||||||
if (config.isEffective(this.getProjectId())) {
|
if (config.isEffective(this.getProjectId())) {
|
||||||
String useEvnId = config.getConfig().get(this.getProjectId()).getApiEnvironmentid();
|
String useEvnId = config.getConfig().get(this.getProjectId()).getApiEnvironmentid();
|
||||||
if(StringUtils.isNotEmpty(useEvnId) && !StringUtils.equals(useEvnId,this.getEnvironmentId())){
|
if (StringUtils.isNotEmpty(useEvnId) && !StringUtils.equals(useEvnId, this.getEnvironmentId())) {
|
||||||
this.setEnvironmentId(useEvnId);
|
this.setEnvironmentId(useEvnId);
|
||||||
}
|
}
|
||||||
return getHttpConfig(config.getConfig().get(this.getProjectId()).getHttpConfig());
|
return getHttpConfig(config.getConfig().get(this.getProjectId()).getHttpConfig());
|
||||||
|
@ -585,7 +586,7 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
||||||
private Arguments httpArguments(List<KeyValue> list) {
|
private Arguments httpArguments(List<KeyValue> list) {
|
||||||
Arguments arguments = new Arguments();
|
Arguments arguments = new Arguments();
|
||||||
list.stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue -> {
|
list.stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue -> {
|
||||||
HTTPArgument httpArgument = new HTTPArgument(keyValue.getName(), StringUtils.isNotEmpty(keyValue.getValue()) && keyValue.getValue().startsWith("@") ? ScriptEngineUtils.buildFunctionCallString(keyValue.getValue()) : keyValue.getValue());
|
HTTPArgument httpArgument = new HTTPArgument(keyValue.getName(), StringUtils.isNotEmpty(keyValue.getValue()) && keyValue.getValue().startsWith("@") ? ScriptEngineUtils.buildFunctionCallString(keyValue.getValue()) : keyValue.getValue());
|
||||||
if (keyValue.getValue() == null) {
|
if (keyValue.getValue() == null) {
|
||||||
httpArgument.setValue("");
|
httpArgument.setValue("");
|
||||||
}
|
}
|
||||||
|
|
|
@ -240,7 +240,8 @@ public class MsJDBCSampler extends MsTestElement {
|
||||||
sampler.setProperty(TestElement.TEST_CLASS, JDBCSampler.class.getName());
|
sampler.setProperty(TestElement.TEST_CLASS, JDBCSampler.class.getName());
|
||||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||||
sampler.setProperty("MS-ID", this.getId());
|
sampler.setProperty("MS-ID", this.getId());
|
||||||
sampler.setProperty("MS-RESOURCE-ID", this.getResourceId()+ "_" + this.getIndex());
|
String indexPath = this.getIndex();
|
||||||
|
sampler.setProperty("MS-RESOURCE-ID", this.getResourceId() + "_" + this.getFullIndexPath(this.getParent(), indexPath));
|
||||||
List<String> id_names = new LinkedList<>();
|
List<String> id_names = new LinkedList<>();
|
||||||
this.getScenarioSet(this, id_names);
|
this.getScenarioSet(this, id_names);
|
||||||
sampler.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
sampler.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
||||||
|
|
|
@ -204,7 +204,8 @@ public class MsTCPSampler extends MsTestElement {
|
||||||
tcpSampler.setName(this.getName() + DelimiterConstants.SEPARATOR.toString() + name);
|
tcpSampler.setName(this.getName() + DelimiterConstants.SEPARATOR.toString() + name);
|
||||||
}
|
}
|
||||||
tcpSampler.setProperty("MS-ID", this.getId());
|
tcpSampler.setProperty("MS-ID", this.getId());
|
||||||
tcpSampler.setProperty("MS-RESOURCE-ID", this.getResourceId() + "_" + this.getIndex());
|
String indexPath = this.getIndex();
|
||||||
|
tcpSampler.setProperty("MS-RESOURCE-ID", this.getResourceId() + "_" + this.getFullIndexPath(this.getParent(), indexPath));
|
||||||
List<String> id_names = new LinkedList<>();
|
List<String> id_names = new LinkedList<>();
|
||||||
this.getScenarioSet(this, id_names);
|
this.getScenarioSet(this, id_names);
|
||||||
tcpSampler.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
tcpSampler.setProperty("MS-SCENARIO", JSON.toJSONString(id_names));
|
||||||
|
|
|
@ -181,12 +181,13 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
formatContent(hashTree, tree) {
|
formatContent(hashTree, tree, fullPath) {
|
||||||
if (hashTree) {
|
if (hashTree) {
|
||||||
hashTree.forEach(item => {
|
hashTree.forEach(item => {
|
||||||
if (item.enable) {
|
if (item.enable) {
|
||||||
|
item.parentIndex = fullPath ? fullPath + "_" + item.index : item.index;
|
||||||
let name = item.name ? item.name : item.type;
|
let name = item.name ? item.name : item.type;
|
||||||
let obj = {resId: item.resourceId + "_" + item.index, index: Number(item.index), label: name, value: {name: name, responseResult: {}, unexecute: true, testing: false}, children: [], unsolicited: true};
|
let obj = {resId: item.resourceId + "_" + item.parentIndex, index: Number(item.index), label: name, value: {name: name, responseResult: {}, unexecute: true, testing: false}, children: [], unsolicited: true};
|
||||||
tree.children.push(obj);
|
tree.children.push(obj);
|
||||||
if (ELEMENTS.get("AllSamplerProxy").indexOf(item.type) != -1) {
|
if (ELEMENTS.get("AllSamplerProxy").indexOf(item.type) != -1) {
|
||||||
obj.unsolicited = false;
|
obj.unsolicited = false;
|
||||||
|
@ -195,7 +196,7 @@ export default {
|
||||||
this.content.scenarioTotal += 1;
|
this.content.scenarioTotal += 1;
|
||||||
}
|
}
|
||||||
if (item.hashTree && item.hashTree.length > 0 && ELEMENTS.get("AllSamplerProxy").indexOf(item.type) === -1) {
|
if (item.hashTree && item.hashTree.length > 0 && ELEMENTS.get("AllSamplerProxy").indexOf(item.type) === -1) {
|
||||||
this.formatContent(item.hashTree, obj);
|
this.formatContent(item.hashTree, obj, item.parentIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -533,7 +533,7 @@ export default {
|
||||||
},
|
},
|
||||||
resultEvaluationChild(arr, resourceId, status) {
|
resultEvaluationChild(arr, resourceId, status) {
|
||||||
arr.forEach(item => {
|
arr.forEach(item => {
|
||||||
if (item.data.resourceId + "_" + item.data.index === resourceId) {
|
if (item.data.resourceId + "_" + item.data.parentIndex === resourceId) {
|
||||||
item.data.testing = false;
|
item.data.testing = false;
|
||||||
this.evaluationParent(item.parent, status);
|
this.evaluationParent(item.parent, status);
|
||||||
}
|
}
|
||||||
|
@ -545,7 +545,7 @@ export default {
|
||||||
resultEvaluation(resourceId, status) {
|
resultEvaluation(resourceId, status) {
|
||||||
if (this.$refs.stepTree && this.$refs.stepTree.root) {
|
if (this.$refs.stepTree && this.$refs.stepTree.root) {
|
||||||
this.$refs.stepTree.root.childNodes.forEach(item => {
|
this.$refs.stepTree.root.childNodes.forEach(item => {
|
||||||
if (item.data.resourceId + "_" + item.data.index === resourceId) {
|
if (item.data.resourceId + "_" + item.data.parentIndex === resourceId) {
|
||||||
item.data.testing = false;
|
item.data.testing = false;
|
||||||
}
|
}
|
||||||
if (item.childNodes && item.childNodes.length > 0) {
|
if (item.childNodes && item.childNodes.length > 0) {
|
||||||
|
@ -622,7 +622,7 @@ export default {
|
||||||
},
|
},
|
||||||
runningNodeChild(arr, resourceId) {
|
runningNodeChild(arr, resourceId) {
|
||||||
arr.forEach(item => {
|
arr.forEach(item => {
|
||||||
if (item.data && item.data.resourceId + "_" + item.data.index === resourceId) {
|
if (item.data && item.data.resourceId + "_" + item.data.parentIndex === resourceId) {
|
||||||
item.data.testing = true;
|
item.data.testing = true;
|
||||||
this.runningEditParent(item.parent);
|
this.runningEditParent(item.parent);
|
||||||
}
|
}
|
||||||
|
@ -634,7 +634,7 @@ export default {
|
||||||
runningEvaluation(resourceId) {
|
runningEvaluation(resourceId) {
|
||||||
if (this.$refs.stepTree && this.$refs.stepTree.root) {
|
if (this.$refs.stepTree && this.$refs.stepTree.root) {
|
||||||
this.$refs.stepTree.root.childNodes.forEach(item => {
|
this.$refs.stepTree.root.childNodes.forEach(item => {
|
||||||
if (item.data && item.data.resourceId + "_" + item.data.index === resourceId) {
|
if (item.data && item.data.resourceId + "_" + item.data.parentIndex === resourceId) {
|
||||||
item.data.testing = true;
|
item.data.testing = true;
|
||||||
}
|
}
|
||||||
if (item.childNodes && item.childNodes.length > 0) {
|
if (item.childNodes && item.childNodes.length > 0) {
|
||||||
|
@ -841,7 +841,7 @@ export default {
|
||||||
this.isBtnHide = true;
|
this.isBtnHide = true;
|
||||||
this.$refs.scenarioApiRelevance.open();
|
this.$refs.scenarioApiRelevance.open();
|
||||||
},
|
},
|
||||||
sort(stepArray, scenarioProjectId) {
|
sort(stepArray, scenarioProjectId,fullPath) {
|
||||||
if (!stepArray) {
|
if (!stepArray) {
|
||||||
stepArray = this.scenarioDefinition;
|
stepArray = this.scenarioDefinition;
|
||||||
}
|
}
|
||||||
|
@ -866,7 +866,8 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 添加debug结果
|
// 添加debug结果
|
||||||
let key = stepArray[i].resourceId + "_" + stepArray[i].index;
|
stepArray[i].parentIndex = fullPath ? fullPath + "_" + stepArray[i].index : stepArray[i].index;
|
||||||
|
let key = stepArray[i].resourceId + "_" + stepArray[i].parentIndex;
|
||||||
if (this.debugResult && this.debugResult.get(key)) {
|
if (this.debugResult && this.debugResult.get(key)) {
|
||||||
stepArray[i].requestResult = this.debugResult.get(key);
|
stepArray[i].requestResult = this.debugResult.get(key);
|
||||||
stepArray[i].result = null;
|
stepArray[i].result = null;
|
||||||
|
@ -875,7 +876,7 @@ export default {
|
||||||
}
|
}
|
||||||
if (stepArray[i].hashTree && stepArray[i].hashTree.length > 0) {
|
if (stepArray[i].hashTree && stepArray[i].hashTree.length > 0) {
|
||||||
this.stepSize += stepArray[i].hashTree.length;
|
this.stepSize += stepArray[i].hashTree.length;
|
||||||
this.sort(stepArray[i].hashTree, stepArray[i].projectId);
|
this.sort(stepArray[i].hashTree, stepArray[i].projectId,stepArray[i].parentIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue