這裏簡單說明一下怎麼自定義java請求,並利用jmeter作壓力測試,但願不只對測試人員,對開發人員也有幫助。java
1) 在eclipse中建立一個java項目apache
2) 導入Jmeterhome/lib/ext下的兩個包:ApacheJMeter_java.jar和ApacheJMeter_core.jar服務器
3) 建立一個繼承於AbstractJavaSamplerClient的java類eclipse
import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; public class javaRequest extends AbstractJavaSamplerClient { //自定義變量 private SampleResult results; private String var1=null; private String var2=null; //設置傳入的參數,能夠設置多個,已設置的參數會顯示到Jmeter的參數列表中 @Override public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("param1",""); params.addArgument("param2",""); return params; } //初始化方法,實際運行時每一個線程僅執行一次,在測試方法運行前執行 @Override public void setupTest(JavaSamplerContext arg0){ //如下是舉例代碼 results = new SampleResult(); var1 = arg0.getParameter("param1"); //獲取在Jmeter中設置的參數值 if (var1 != null && var1.length() > 0) { results.setSamplerData(var1); } var2=arg0.getParameter("param2"); if (var2 != null && var2.length() > 0) { results.setSamplerData(var2); } } //測試執行的循環體,根據線程數和循環次數的不一樣可執行屢次 @Override public SampleResult runTest(JavaSamplerContext arg0) { SampleResult result = new SampleResult(); boolean success = true; //事務的起點 result.sampleStart(); // 這裏可引用var一、var2編寫您的測試代碼. //事務的終點 result.sampleEnd(); //設置本次事務成功或失敗 result.setSuccessful(success); return result; } //結束方法,實際運行時每一個線程僅執行一次,在測試方法運行結束後執行 @Override public void teardownTest(JavaSamplerContext arg0){ driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); System.out.println(verificationErrorString); } super.teardownTest(arg0); } }
將以上project導出爲jar包,放到jmeter/lib/ext下,重啓jmeter。ide
選擇自定義的類,設置對應的參數值。測試
聚合報告:ui
服務器參數監控:線程