feat(接口自动化): 循环控制器 结果处理
This commit is contained in:
parent
66473ae258
commit
d6c5d56d55
|
@ -60,7 +60,7 @@ public class MsScenario extends MsTestElement {
|
|||
return;
|
||||
}
|
||||
config.setStep(this.name);
|
||||
config.setStepType("");
|
||||
config.setStepType("SCENARIO");
|
||||
config.setEnableCookieShare(enableCookieShare);
|
||||
if (StringUtils.isNotEmpty(environmentId)) {
|
||||
ApiTestEnvironmentService environmentService = CommonBeanFactory.getBean(ApiTestEnvironmentService.class);
|
||||
|
|
|
@ -12,7 +12,11 @@ import lombok.Data;
|
|||
import lombok.EqualsAndHashCode;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.jmeter.control.*;
|
||||
import org.apache.jmeter.control.ForeachController;
|
||||
import org.apache.jmeter.control.LoopController;
|
||||
import org.apache.jmeter.control.RunTime;
|
||||
import org.apache.jmeter.control.WhileController;
|
||||
import org.apache.jmeter.modifiers.CounterConfig;
|
||||
import org.apache.jmeter.reporters.ResultAction;
|
||||
import org.apache.jmeter.save.SaveService;
|
||||
import org.apache.jmeter.testelement.TestElement;
|
||||
|
@ -43,8 +47,21 @@ public class MsLoopController extends MsTestElement {
|
|||
if (!this.isEnable()) {
|
||||
return;
|
||||
}
|
||||
final HashTree groupTree = controller(tree);
|
||||
if (StringUtils.equals(this.loopType, LoopConstants.WHILE.name()) && this.whileController != null) {
|
||||
config.setStep("While 循环");
|
||||
}
|
||||
if (StringUtils.equals(this.loopType, LoopConstants.FOREACH.name()) && this.forEachController != null) {
|
||||
config.setStep("ForEach 循环");
|
||||
}
|
||||
if (StringUtils.equals(this.loopType, LoopConstants.LOOP_COUNT.name()) && this.countController != null) {
|
||||
config.setStep("次数循环");
|
||||
}
|
||||
|
||||
config.setStepType("LOOP");
|
||||
|
||||
final HashTree groupTree = controller(tree);
|
||||
// 循环下都增加一个计数器,用于结果统计
|
||||
groupTree.add(addCounterConfig());
|
||||
// 不打开执行成功后轮询功能,则成功后就停止循环
|
||||
if (StringUtils.equals(this.loopType, LoopConstants.LOOP_COUNT.name()) && this.countController != null && !countController.isProceed()) {
|
||||
ResultAction resultAction = new ResultAction();
|
||||
|
@ -65,6 +82,18 @@ public class MsLoopController extends MsTestElement {
|
|||
}
|
||||
}
|
||||
|
||||
private CounterConfig addCounterConfig() {
|
||||
CounterConfig counterConfig = new CounterConfig();
|
||||
counterConfig.setVarName("LoopCounterConfigXXX");
|
||||
counterConfig.setName("LoopCounterConfigXXX");
|
||||
counterConfig.setEnabled(true);
|
||||
counterConfig.setProperty(TestElement.TEST_CLASS, CounterConfig.class.getName());
|
||||
counterConfig.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("CounterConfigGui"));
|
||||
counterConfig.setStart(1L);
|
||||
counterConfig.setIncrement(1L);
|
||||
return counterConfig;
|
||||
}
|
||||
|
||||
private LoopController loopController() {
|
||||
LoopController loopController = new LoopController();
|
||||
loopController.setEnabled(true);
|
||||
|
|
|
@ -40,7 +40,11 @@ public class MsJSR223Processor extends MsTestElement {
|
|||
processor.setName("JSR223Processor");
|
||||
}
|
||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
||||
processor.setName(this.getName() + "<->" + config.getStep());
|
||||
if ("SCENARIO".equals(config.getStepType())) {
|
||||
processor.setName(this.getName() + "<->" + config.getStep());
|
||||
} else {
|
||||
processor.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
||||
}
|
||||
}
|
||||
processor.setProperty(TestElement.TEST_CLASS, JSR223Sampler.class.getName());
|
||||
processor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||
|
|
|
@ -78,7 +78,11 @@ public class MsDubboSampler extends MsTestElement {
|
|||
DubboSample sampler = new DubboSample();
|
||||
sampler.setName(this.getName());
|
||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
||||
if ("SCENARIO".equals(config.getStepType())) {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
||||
} else {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
||||
}
|
||||
}
|
||||
sampler.setProperty(TestElement.TEST_CLASS, DubboSample.class.getName());
|
||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("DubboSampleGui"));
|
||||
|
|
|
@ -97,7 +97,11 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
|||
sampler.setEnabled(true);
|
||||
sampler.setName(this.getName());
|
||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
||||
if ("SCENARIO".equals(config.getStepType())) {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
||||
} else {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
||||
}
|
||||
}
|
||||
|
||||
sampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
|
||||
|
|
|
@ -107,7 +107,11 @@ public class MsJDBCSampler extends MsTestElement {
|
|||
JDBCSampler sampler = new JDBCSampler();
|
||||
sampler.setName(this.getName());
|
||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
||||
if ("SCENARIO".equals(config.getStepType())) {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
||||
} else {
|
||||
sampler.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
||||
}
|
||||
}
|
||||
sampler.setProperty(TestElement.TEST_CLASS, JDBCSampler.class.getName());
|
||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||
|
|
|
@ -99,7 +99,11 @@ public class MsTCPSampler extends MsTestElement {
|
|||
TCPSampler tcpSampler = new TCPSampler();
|
||||
tcpSampler.setName(this.getName());
|
||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
||||
tcpSampler.setName(this.getName() + "<->" + config.getStep());
|
||||
if ("SCENARIO".equals(config.getStepType())) {
|
||||
tcpSampler.setName(this.getName() + "<->" + config.getStep());
|
||||
} else {
|
||||
tcpSampler.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
||||
}
|
||||
}
|
||||
|
||||
tcpSampler.setProperty(TestElement.TEST_CLASS, TCPSampler.class.getName());
|
||||
|
|
Loading…
Reference in New Issue