Jmeter中自定義JavaSamplerClient類的編寫


自定義的JavaSamplerClient類需要滿足以下幾個條件:

1、需要把Jmter的ext目錄下的ApacheJmeter_core.jar和ApacheJmetere_java.jar 引入到項目中

 

 

 

2、自定義的JavaSamplerClient繼承 org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient類

3、實現AbstractJavaSamplerClient類的

/**可選實現的方法**/

public Arguments getDefaultParameters()
public void setupTest(JavaSamplerContext context)
public void teardownTest(JavaSamplerContext context)
/**必需實現的方法**/
publicSampleResult runTest(JavaSamplerContext context)

其中 getDefaultParameters方法、setupTest、teardownTest方法在這個類的實例中只運行一次,runTest方法是每調用一次這個類的實例就執行一次這個方法,所以
在runTest方法中需要重新獲取傳入的參數,項目中遇到的一個問題就是自定義的JavaSamplerClient類里的參數只能在第一次才能傳入參數正確,后來傳入的參數都不能被正確地使用,經過排查原因就在於只在setupTest中獲取了參數,在runTest方法中沒有再次獲取參數,這樣就導致runTest中使用的仍是初始值,而不是新傳入的參數。
 
為了驗證上面敘述的正確性,我在setupTest、teardownTest、runTest方法中,都加了log,同時我在jmeter的一個線程中重復3次調用這個自定義的JavaSamplerClient類的實例,查看結果如何。
(1)在setupTest、teardownTest、runTest方法中,增加打印log的語句

 

 

(2)自定義的JavaSamplerClient類實例,被循環調用3次的日志輸出如下,從日志可以看出,setupTest在線程開始創建自定義類的實例被調用時,循環的過程中只調用runTest方法,線程中該實例被銷毀時才調用teardownTest方法

 

 4、代碼寫好以后,需要打成jar包放到jmeter的lib目錄下,如果編寫的自定義類用到了三方的jar包,那么在maven項目的pom.xml文件中,引入maven-jar-plugin插件,這樣生成的jar的manifest文件就包含引用三方的jar包路徑,同時手動把引用的三方jar包放入到jmeter的相應目錄下,就能正確地引用三方jar包了。

5、在jmeter腳本中正確地找到該方法,輸入參數,就可以使用了。

 

 

 

 

 

 


免責聲明!

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



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