利用jmeter+JAVA對RPC的單接口(dubbo接口等)進行性能測試
阿新 • • 發佈:2017-09-05
統計 線程 public select esp des trace doc 重新
建立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接口的壓測,長連接的壓測等)
記錄下,免得下次還得重新搜怎麽做
利用jmeter+JAVA對RPC的單接口(dubbo接口等)進行性能測試