我尝试使用Jmeter开源+ java来模拟压力测试并从Jenkins运行它们。该项目是由Maven构建的,所以我没有Jenkins的问题。但是在将请求发送到服务器后我无法捕获输出信息。
public void runTest( String url,String user,int URLnumber) {
StandardJMeterEngine jm = new StandardJMeterEngine();
// jmeter.properties
JMeterUtils.loadJMeterProperties("./jmeter.properties");
HashTree hashTree = new HashTree();
// HTTP Sampler
HTTPSampler httpSampler = new HTTPSampler();
httpSampler.setDomain(url);
//httpSampler.setPort(80);
httpSampler.setPath("/");
httpSampler.setMethod("POST");
httpSampler.addArgument("post_id","51015");
httpSampler.addArgument("variant","");
// Loop Controller
TestElement loopCtrl = new LoopController();
((LoopController)loopCtrl).setLoops(1);
((LoopController)loopCtrl).addTestElement(httpSampler);
((LoopController)loopCtrl).setFirst(true);
// Thread Group
SetupThreadGroup threadGroup = new SetupThreadGroup();
threadGroup.setNumThreads(25);
threadGroup.setRampUp(5);
threadGroup.setSamplerController((LoopController)loopCtrl);
org.apache.jmeter.reporters.Summariser summariser = new Summariser();
// Test plan
TestPlan testPlan = new TestPlan("MY TEST PLAN");
hashTree.add("testPlan", testPlan);
hashTree.add("loopCtrl", loopCtrl);
hashTree.add("threadGroup", threadGroup);
hashTree.add("httpSampler", httpSampler);
jm.configure(hashTree);
jm.run();
}
可能有人知道如何在没有编码的情况下通过Jenkins配置Jmeter,并在Jenkins控制台中获取结果。但我认为这是不可能的。
答案 0 :(得分:1)
您是否看到Jenkins Performance Plugin支持JMeter?
如果由于任何原因它不合适,Jenkins可以至少执行以下目标:
JMeter可以通过上述所有方法启动,而无需编写单行Java代码。有关详细信息,请参阅5 Ways To Launch a JMeter Test without Using the JMeter GUI。
答案 1 :(得分:0)
默认情况下,jmeter测试运行期间的控制台输出被抑制。
我建议您查看下面的jenkins配置链接。
希望这会有所帮助。