fix(接口测试): 修复场景变量CSV在循环中只取值重复问题
--bug=1011867 --user=赵勇 【接口测试】github#12201,在A场景里引用B场景,B场景如果放在A场景上面,且B场景里有用到场景变量,这个时候再执行,循环取出来的值都是一样的 https://www.tapd.cn/55049933/s/1129135
This commit is contained in:
parent
55be24b582
commit
69a0b46f00
|
@ -101,6 +101,9 @@ public class ElementUtil {
|
|||
public static void addCsvDataSet(HashTree tree, List<ScenarioVariable> variables, ParameterConfig config, String shareMode) {
|
||||
if (CollectionUtils.isNotEmpty(variables)) {
|
||||
List<ScenarioVariable> list = variables.stream().filter(ScenarioVariable::isCSVValid).collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(list) && CollectionUtils.isNotEmpty(config.getTransferVariables())) {
|
||||
list = config.getTransferVariables().stream().filter(ScenarioVariable::isCSVValid).collect(Collectors.toList());
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
list.forEach(item -> {
|
||||
CSVDataSet csvDataSet = new CSVDataSet();
|
||||
|
|
|
@ -136,6 +136,10 @@ public class MsScenario extends MsTestElement {
|
|||
this.setNewConfig(envConfig, newConfig);
|
||||
}
|
||||
|
||||
if (config != null && StringUtils.equals(this.getId(), config.getScenarioId())) {
|
||||
config.setTransferVariables(this.variables);
|
||||
}
|
||||
|
||||
if (config != null && !config.getExcludeScenarioIds().contains(this.getId())) {
|
||||
scenarioTree = MsCriticalSectionController.createHashTree(tree, this.getName(), this.isEnable());
|
||||
}
|
||||
|
|
|
@ -46,6 +46,10 @@ public class ParameterConfig extends MsParameter {
|
|||
* 公共场景参数
|
||||
*/
|
||||
private List<ScenarioVariable> variables;
|
||||
/**
|
||||
* 当前场景变量,逐层传递
|
||||
*/
|
||||
private List<ScenarioVariable> transferVariables;
|
||||
|
||||
/**
|
||||
* 公共场景参数
|
||||
|
|
|
@ -320,6 +320,7 @@ public class ApiScenarioExecuteService {
|
|||
map = environmentGroupProjectService.getEnvMap(environmentGroupId);
|
||||
}
|
||||
ParameterConfig config = new ParameterConfig();
|
||||
config.setScenarioId(request.getScenarioId());
|
||||
if (map != null) {
|
||||
apiScenarioEnvService.setEnvConfig(map, config);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue