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請求、檢視結果樹,進行測試;