使用Jmeter測試java請求

1、性能測試過程中,有時候開發想對JAVA程式碼進行性能測試,Jmeter是支援對Java請求進行性能測試,但是需要自己開發、打包好要測試的程式碼,就能在Java請求中對該java方法進行性能測試
2、本文舉的例子是Java實現通過傳入兩個參數,將值寫入到文件中


  • 開發思路
    1、使用Eclipse創建Maven 項目,配置Pom文件,引入Jmeter開發Java請求所需的依賴包;
    2、創建輸入參數類,和測試類,然後繼承JavaSamplerClient,實現四個主方法;
    3、對編寫好的項目進行編譯、打包
    4、把打包好的函數放到jmeter擴展目錄,調用Java請求,對封裝的Java方法進行測試;

JDK環境 Jmeter依賴包版本 Maven倉庫版本
1.8 4.0 3.5.3

Java_Sample完整項目下載方法見文章末尾介紹

一、新建Maven項目
1. File》New》Project,選擇Maven》Maven Project,一直點擊Next
在這裡插入圖片描述
在這裡插入圖片描述
2. 配置Pom文件,Pom文件配置的Jmeter4.0版本,只要保存了Pom文件,系統就會自動下載和關聯相應的jar包,Pom配置文件如下:
在這裡插入圖片描述
3. 保存Pom文件之後,系統會自動下載關聯的依賴文件,會用到的為ApacheJMeter_core-4.0.jar和ApacheJMeter_java-4.0.jar如下圖:
保存前:
在這裡插入圖片描述
保存後:
在這裡插入圖片描述
4. 此時,由於對pom文件進行了修改,項目頂層會出現一把×,並且編譯可能就會報錯,需要執行Maven》Update Project更新外部依賴的Jar包
在這裡插入圖片描述
更新前:
在這裡插入圖片描述
更新後,編譯、打包正常:
在這裡插入圖片描述
二、編寫輸入參數類、測試類
1. 輸入參數類,該類就是被測試的java方法,主要是實現將參數寫入到文件,程式碼如下:
在這裡插入圖片描述
2. 測試類,首先在com.xiet.Java_Sample包下創建一個類,類名為Jmeter_Test,需要繼承JavaSamplerClient類,然後實現父類的四個方法,和一個main方法
在這裡插入圖片描述

main主方法主要是用來本地調試,用來測試封裝的Java方法是否功能正常,如果能實現正常功能,就可以進行編譯、打包在Jmeter中進行調用

在這裡插入圖片描述

setupTest方法為初始化方法,實際運行時每個執行緒僅執行一次,在測試方法運行前執行,默認置空即可

在這裡插入圖片描述

runTest方法為測試方法,該方法用來傳入輸入的參數,然後調用參數類,進行測試

在這裡插入圖片描述

teardownTest方法為結束方法,實際運行時每個執行緒僅執行一次,在測試方法結束後執行,默認置空即可

在這裡插入圖片描述
3. getDefaultParameters方法為設置傳入的參數,可以設置多個,已設置的參數會顯示到Jmeter的參數列表中,如下所示:
在這裡插入圖片描述
三、編譯、打包
1. 編寫程式碼完成,就可以進行編譯、打包操作了,右鍵點擊項目》Run As》Maven build
在這裡插入圖片描述
2. 在Goals中輸入package,然後點擊Apply》Run執行編譯,打包操作
在這裡插入圖片描述
3. 編譯打包完成,在target目錄會生成一個jar包,如下圖所示
在這裡插入圖片描述
在這裡插入圖片描述

四、驗證開發的函數是否正常
1. 首先把Java_Sample_0.1.jar函數放到jmeter的\lib\ext目錄
在這裡插入圖片描述
2. 然後啟動Jmeter,執行緒組》添加》Sample》Java請求
在這裡插入圖片描述
3. 在類名稱中選擇封裝的Java類,為com.xiet.Java_Sample.Jmeter_Test,該類名稱為包名+類名
在這裡插入圖片描述
4. 本次設置2執行緒,2循環,點擊執行按鈕,執行結果如下:
在這裡插入圖片描述
在這裡插入圖片描述

完整源碼如下
在這裡插入圖片描述
***
   如果文章對你有幫助,歡迎關注本人公眾號,公眾號與本平台文章同步,方便大家查閱,本人會持續推出與測試有關的文章,與大家分享測試技術,每一篇原創文章都是用心編寫,杜絕抄襲複製


QQ技術交流群:加群請輸入驗證資訊 部落格園
              在這裡插入圖片描述


微信二維碼關注公眾號:

在這裡插入圖片描述


關注之後,回復資源下載,即可獲取本人共享的各種資源下載地址

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dkyHNY2D-1569554485737)(//s1.51cto.com/images/blog/201908/06/2e62f8806e1dc1c391c4332ac7fd70b1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]