1. 程式人生 > >Jmeter之Java介面呼叫

Jmeter之Java介面呼叫

通常用jmeter做http請求(或者其他型別)測試時,有時需要對請求的資料(或者響應的資料)進行特定的處理再進行請求,如加密、解密,需自己用java編寫一些工具類;或者需要對Java介面服務進行效能測試時,需要用到jmeter進行Java介面呼叫。以下簡單介紹下jmeter通過Java請求和Bean shell方式來實現Java介面呼叫的具體使用方法。

 

一、jmeter中BeanShell Sampler呼叫java介面有3種方式

 

1.引用外部java檔案

1)編寫一個java 原始檔,名為:testFun.java,程式碼如下:

 

2)Bean Shell使用程式碼如下:

在bean shel中通過source("程式碼路徑")方法引入java,然後呼叫方法和java一樣,new一個class,再呼叫裡面的towerCase方法

 

2.     引用外部class檔案

1)直接把上例中的java檔案編譯成class檔案,javac java檔案。

 

2)BeanShell使用程式碼如下:

 用addClassPath("class檔案所在路徑")方法引入 class檔案,在用import匯入包及類,就可以像java一樣呼叫了;

 

3.     引用外部Jar包

如果檔案比較多時我們可以把它們打成一個jar包然後在jemter中呼叫,如下:

 

1)jmeter中引入jar

把jar包放到jmeter目錄\apache-jmeter-2.13\lib\ext下,然後在jmeter中Test Plan的右側面板最下方直接新增需要引用的jar包,如下圖:

 

2)在用import匯入包及類,直接呼叫方法:

 

二、jmeter的Java請求具體使用

1.建立一個Java專案:uapTest

 

2.     將Jmeter安裝目錄ext下的ApacheJMeter_core.jar和ApacheJMeter_java.jar兩個jar包複製到測試專案的lib目錄下,這兩個包是編寫java請求測試程式碼必須的。並將引用的jar包都新增到專案的Build Path中。

 

3.     建立一個GetAuthByAppIdUserId.java類並實現JavaSamplerClient介面或繼承AbstractJavaSamplerClient並重寫,主要有以下幾個方法:

 

publicArguments getDefaultParameters();設定可用引數及的預設值;

 

public voidsetupTest(JavaSamplerContext arg0):每個執行緒測試前執行一次,做一些初始化工作;

 

publicSampleResult runTest(JavaSamplerContext arg0):開始測試,從arg0引數可以獲得引數值;

 

public void teardownTest(JavaSamplerContextarg0):測試結束時呼叫;

 

其中,畫紅框部分是測試程式碼主體,sampleStart和sampleEnd方法呼叫時會分別生成一個時間戳,兩個時間戳之差就是一次java請求的響應時間,單位是ms。

 

注意:如果需要對多個方法進行測試,則需要建多個測試類,多個測試類可以放在同一個包下面,也可以放在單獨的包中。

 

4.將專案打成jar包,為uapTest.jar,注意使用Export為Runnable Jar File,會匯出相關依賴包,並有包依賴關係檔案;

 

5.將匯出jar包以及依賴相關依賴jar放入JMETER_HOME\lib\ext目錄;

 

6.開啟jmeter建立執行緒組、新增Sampler--Java請求、檢視結果樹,進行測試;