創建maven項目,加入Jmeter所須要的JAR包依賴。java
POM.xml 加入以下:
apache
<dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>3.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_components --> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_components</artifactId> <version>3.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java --> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>3.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.jmeter/jorphan --> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>jorphan</artifactId> <version>3.2</version> </dependency>
/** * jmeter測試類 * * @author hejb 2017.09.04 * */ public class AppForJmeter implements JavaSamplerClient { /** * 設置可用參數及的默認值 */ public Arguments getDefaultParameters() { System.out.println("i'm start"); return null; } /** * 開始測試,從arg0參數能夠得到參數值; */ public SampleResult runTest(JavaSamplerContext arg0) { SampleResult sr = new SampleResult(); sr.sampleStart();// jmeter 開始統計響應時間標記 sr.setResponseData("test", null); sr.setDataType(SampleResult.TEXT); sr.setSuccessful(true); sr.sampleEnd();// jmeter 結束統計響應時間標記 return sr; } /** * 每一個線程測試前執行一次,作一些初始化工做 */ public void setupTest(JavaSamplerContext arg0) { System.out.println("set Up Test"); } /** * 測試結束時調用; */ public void teardownTest(JavaSamplerContext arg0) { System.out.println("down..."); } public static void main(String[] args) { System.out.println("test in main"); } }
ps: 記得添加main方法maven
把項目的JAR包導出性能
\apache-jmeter-3.2\lib\ext測試
添加線程組spa
能夠找到剛剛的那個JAVA類線程
添加察看結果樹,而後運行,能夠看到JAVA中輸出的內容code
傳入參數,並獲取進行處理component
String message = "test"; /** * 設置可用參數及的默認值 */ public Arguments getDefaultParameters() { Arguments arguments = new Arguments(); arguments.addArgument("message", "hello world!"); return arguments; }
在RUN中進行獲取值xml
/** * 開始測試,從arg0參數能夠得到參數值; */ public SampleResult runTest(JavaSamplerContext arg0) { message = arg0.getParameter("message"); SampleResult sr = new SampleResult(); sr.sampleStart();// jmeter 開始統計響應時間標記 sr.setResponseData("test:" + message, null); sr.setDataType(SampleResult.TEXT); sr.setSuccessful(true); try { Thread.sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } sr.sampleEnd();// jmeter 結束統計響應時間標記 return sr; }
記得每次修改須要從新導出JAR包,放入到ext下,而後從新啓動jemeter,能看到參數設置
收到參數
性能報告,
這樣就能夠用JAVA去壓測RPC接口了,(如dubbo接口的壓測,長鏈接的壓測等)
記錄下,省得下次還得從新搜怎麼作