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

 

創建JAVA項目

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

 

實現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方法maven

 

導出JAR包

把項目的JAR包導出性能

 

加入JAR包

\apache-jmeter-3.2\lib\ext測試

添加線程組spa

 

加入JAVA請求配置

 

 

能夠找到剛剛的那個JAVA類線程

 

 

添加察看結果樹

添加察看結果樹,而後運行,能夠看到JAVA中輸出的內容code

 

 

加入聚合報告

傳入JAVA接受參數參數

 

傳入參數,並獲取進行處理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接口的壓測,長鏈接的壓測等)

 

記錄下,省得下次還得從新搜怎麼作

相關文章
相關標籤/搜索