利用jmeter+JAVA對RPC的單接口(dubbo接口等)進行性能測試


 

建立JAVA項目

建立maven項目,加入Jmeter所需要的JAR包依賴。

POM.xml  加入如下:

<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> 

 

實現JavaSamplerClient 接口

/**
 * 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方法

 

導出JAR包

把項目的JAR包導出

 

加入JAR包

\apache-jmeter-3.2\lib\ext

添加線程組

 

加入JAVA請求配置

 

 

可以找到剛剛的那個JAVA類

 

 

添加察看結果樹

添加察看結果樹,然后運行,可以看到JAVA中輸出的內容

 

 

加入聚合報告

傳入JAVA接受參數參數

 

傳入參數,並獲取進行處理

	String message = "test"; /** * 設置可用參數及的默認值 */ public Arguments getDefaultParameters() { Arguments arguments = new Arguments(); arguments.addArgument("message", "hello world!"); return arguments; }

 

在RUN中進行獲取值


	/** * 開始測試,從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接口的壓測,長連接的壓測等)

 

記錄下,免得下次還得重新搜怎么做

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM