如何解决Jmeter未运行HttpSamplerProxy
我正在5.3版的jmeter核心和jmeter http上运行它。我很困惑为什么采样器不会触发。我对以这种方式使用jmeter还是陌生的,还不确定这一切如何工作。运行代码后,我最终在jtl文件中没有请求数据。
//JMeter initialization (properties,log levels,locale,etc)
JMeterUtils.loadJMeterProperties(System.getenv("JMETER_HOME") + "/bin/jmeter.properties");
JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
JMeterUtils.initLocale();
// JMeter Test Plan,basic all u JOrphan HashTree
HashTree testPlanTree = new HashTree();
// HTTP Sampler
HTTPSampler httpSampler = new HTTPSampler();
httpSampler.setDomain("example.com");
httpSampler.setPort(80);
httpSampler.setPath("/");
httpSampler.setMethod("GET");
// Loop Controller
LoopController loopController = new LoopController();
loopController.setLoops(1);
loopController.addTestElement(httpSampler);
loopController.setFirst(true);
loopController.initialize();
// Thread Group
ThreadGroup threadGroup = new ThreadGroup();
threadGroup.setNumThreads(1);
threadGroup.setRampUp(1);
threadGroup.setSamplerController(loopController);
// Test Plan
TestPlan testPlan = new TestPlan("Create JMeter Script From Java Code");
// Construct Test Plan from previously initialized elements
testPlanTree.add("testPlan",testPlan);
testPlanTree.add("loopController",loopController);
testPlanTree.add("threadGroup",threadGroup);
testPlanTree.add("httpSampler",httpSampler);
// Run Test Plan
jmeter.configure(testPlanTree);
jmeter.run();
解决方法
首先,此代码:
testPlanTree.add("testPlan",testPlan);
testPlanTree.add("loopController",loopController);
testPlanTree.add("threadGroup",threadGroup);
testPlanTree.add("httpSampler",httpSampler);
需要替换为
testPlanTree.add(testPlan);
HashTree threadGroupHashTree = testPlanTree.add(testPlan,threadGroup);
threadGroupHashTree.add(httpSampler);
我也看不到将结果保存到.jtl的位置,您需要像这样添加ResultCollector:
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name","summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
String logFile = "/path/to/result.jtl";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(logFile);
testPlanTree.add(testPlanTree.getArray()[0],logger);
在jmeter.configure(testPlanTree);
行之前
通常不非常支持使用API创建JMeter测试,并且不能保证该代码在下一个JMeter版本之后都能正常工作,因此我宁愿依赖于Taurus或{{3} }
但是,如果出于某种原因您想继续,可以在jmeter-java-dsl文章和Five Ways To Launch a JMeter Test without Using the JMeter GUI
中获得一些示例。版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。