feat(接口测试): 后置操作添加等待时间

--story=1017718 --user=陈建星 接口测试后置操作增加“等待时间” https://www.tapd.cn/55049933/s/1656430
This commit is contained in:
AgAngle 2025-02-20 13:45:04 +08:00 committed by Craftsman
parent 4016efbdb8
commit 422e20e992
2 changed files with 49 additions and 1 deletions

View File

@ -30,7 +30,7 @@ public class MsProcessorConverterFactory {
postConverterMap.put(ScriptProcessor.class, new ScriptPostProcessorConverter());
postConverterMap.put(SQLProcessor.class, new SqlPostProcessorConverter());
postConverterMap.put(TimeWaitingProcessor.class, new TimeWaitingProcessorConverter());
postConverterMap.put(TimeWaitingProcessor.class, new TimeWaitingPostProcessorConverter());
postConverterMap.put(ExtractPostProcessor.class, new ExtractPostProcessorConverter());
postConverterMap.put(EnvRequestScriptProcessor.class, new ScriptPostProcessorConverter());
postConverterMap.put(EnvScenarioScriptProcessor.class, new ScenarioScriptProcessorConverter());

View File

@ -0,0 +1,48 @@
package io.metersphere.api.parser.jmeter.processor;
import io.metersphere.plugin.api.dto.ParameterConfig;
import io.metersphere.project.api.processor.ScriptProcessor;
import io.metersphere.project.api.processor.TimeWaitingProcessor;
import io.metersphere.project.constants.ScriptLanguageType;
import org.apache.commons.lang3.StringUtils;
import org.apache.jmeter.extractor.JSR223PostProcessor;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jorphan.collections.HashTree;
/**
* @Author: jianxing
* @CreateTime: 2023-12-26 14:49
*/
public class TimeWaitingPostProcessorConverter extends MsProcessorConverter<TimeWaitingProcessor> {
@Override
public void parse(HashTree hashTree, TimeWaitingProcessor timeWaitingProcessor, ParameterConfig config) {
if (!needParse(timeWaitingProcessor, config)) {
return;
}
TestElement processor = new JSR223PostProcessor();
ScriptProcessor scriptProcessor = new ScriptProcessor();
String name = StringUtils.isBlank(timeWaitingProcessor.getName()) ?
(timeWaitingProcessor.getDelay() + " ms") : timeWaitingProcessor.getName();
scriptProcessor.setName(name);
scriptProcessor.setScriptLanguage(ScriptLanguageType.BEANSHELL_JSR233.name());
scriptProcessor.setScript(String.format("""
try {
Thread.sleep(%s);
} catch (InterruptedException e) {
e.printStackTrace();
}
""", timeWaitingProcessor.getDelay()));
ScriptProcessorConverter.parse(processor, scriptProcessor, config);
hashTree.add(processor);
}
protected boolean needParse(TimeWaitingProcessor timeWaitingProcessor, ParameterConfig config) {
if (timeWaitingProcessor.getDelay() != null && timeWaitingProcessor.getDelay() > 0) {
return true;
}
return super.needParse(timeWaitingProcessor, config);
}
}