fix(接口测试): 修复导入JMX脚本中对于测试计划变量处理错误问题
--bug=1022923 --user=赵勇 【接口测试】TestPlan中带变量的jmx文件导入系统后,执行报错 https://www.tapd.cn/55049933/s/1334858
This commit is contained in:
parent
b5960f43bd
commit
4fa0d70196
|
@ -22,7 +22,6 @@ import io.metersphere.service.definition.ApiTestCaseService;
|
||||||
import io.metersphere.service.plan.TestPlanApiCaseService;
|
import io.metersphere.service.plan.TestPlanApiCaseService;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.jmeter.config.Arguments;
|
import org.apache.jmeter.config.Arguments;
|
||||||
|
|
||||||
|
@ -226,7 +225,7 @@ public class ParameterConfig extends MsParameter {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void margeVariables(List<ScenarioVariable> variables, List<ScenarioVariable> transferVariables) {
|
public void margeVariables(List<ScenarioVariable> variables, List<ScenarioVariable> transferVariables) {
|
||||||
if (CollectionUtils.isNotEmpty(transferVariables)) {
|
if (CollectionUtils.isNotEmpty(transferVariables) && CollectionUtils.isNotEmpty(variables)) {
|
||||||
List<ScenarioVariable> constants = variables.stream()
|
List<ScenarioVariable> constants = variables.stream()
|
||||||
.filter(ScenarioVariable::isConstantValid).collect(Collectors.toList());
|
.filter(ScenarioVariable::isConstantValid).collect(Collectors.toList());
|
||||||
|
|
||||||
|
@ -252,22 +251,4 @@ public class ParameterConfig extends MsParameter {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void margeParentVariables(List<ScenarioVariable> variables, MsTestElement parent) {
|
|
||||||
// 取出父级场景且父场景不是顶级场景
|
|
||||||
MsScenario scenario = getScenario(parent);
|
|
||||||
if (scenario == null || BooleanUtils.isFalse(scenario.getMixEnable()) || CollectionUtils.isEmpty(scenario.getVariables())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.margeVariables(variables, scenario.getVariables());
|
|
||||||
}
|
|
||||||
|
|
||||||
private MsScenario getScenario(MsTestElement parent) {
|
|
||||||
if (parent != null && parent instanceof MsScenario) {
|
|
||||||
return parent.getParent() != null ? (MsScenario) parent : null;
|
|
||||||
} else if (parent != null && parent.getParent() != null) {
|
|
||||||
getScenario(parent.getParent());
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,12 @@ package io.metersphere.api.dto.shell.filter;
|
||||||
import io.metersphere.commons.constants.ElementConstants;
|
import io.metersphere.commons.constants.ElementConstants;
|
||||||
import io.metersphere.commons.exception.MSException;
|
import io.metersphere.commons.exception.MSException;
|
||||||
import io.metersphere.plugin.core.utils.LogUtil;
|
import io.metersphere.plugin.core.utils.LogUtil;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ScriptFilter {
|
public class ScriptFilter {
|
||||||
|
@ -17,12 +19,14 @@ public class ScriptFilter {
|
||||||
private static void blackList(StringBuffer buffer, String script, String path) {
|
private static void blackList(StringBuffer buffer, String script, String path) {
|
||||||
try {
|
try {
|
||||||
InputStream in = ScriptFilter.class.getResourceAsStream(path);
|
InputStream in = ScriptFilter.class.getResourceAsStream(path);
|
||||||
List<String> bks = IOUtils.readLines(in);
|
List<String> bks = IOUtils.readLines(in, Charset.defaultCharset());
|
||||||
bks.forEach(item -> {
|
if (CollectionUtils.isNotEmpty(bks)) {
|
||||||
if (script.contains(item) && script.indexOf(item) != -1) {
|
bks.forEach(item -> {
|
||||||
buffer.append(item).append(",");
|
if (script.contains(item) && script.indexOf(item) != -1) {
|
||||||
}
|
buffer.append(item).append(",");
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
LogUtil.error(ex.getMessage());
|
LogUtil.error(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue