學習Jmeter,這一篇就夠了


Jmeter在軟件測試中的常用功能,看完你應該就會了

1、Jmeter的下載安裝

1.1  Jmeter的官方網址是:http://jmeter.apache.org/;下載最新的包到本地進行解壓,路徑按照自己的喜好自己設置;根據下圖官網的提示,Jmeter是要依賴Java8的哦,不同的版本不同,根據實際情況按照好對應的Java版本。

 

 

 

 1.2 解壓到本地之后,一般常用的有2種方式啟動:

 

 1.2.1

 

         直接啟動:打開apache-jmeter-5.3\bin\jmeter.bat 批處理文件,就可打開Jmeter.

 

 1.2.2 命令行啟動:需要設置環境變量

 

        先設置 JMETER_HOME=E:\AutoTest\apache-jmeter-5.3

 

        再在系統變量Path中添加: %JMETER_HOME%\bin

 

        最后還要在CLASSPATH中添加:

 

        %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar.

         環境變量設置完畢之后,在命名行輸入jmeter即可打開Jmeter.

  

 

 

 1.3 Jmeter中文顯示:初學者直接使用中文有助於很快理解很多功能;在bin目錄下打開jmeter.properties文件,將#language=en #注釋去掉,en修改為zh_CN,保存之后重啟Jmeter

 

 

 2Jmeter的簡單認識

2.1 測試計划:用來描述一個性能/接口測試腳本和場景設計,包含與本次測試所有相關的功能。也就是說,使用JMeter進行測試的所有內容都是基於一個測試計划的。

 

 

 2.2 線程組:每個測試需求的必備組件,用來模擬用戶並發的組件。Jmeter的每個任務都是用線程來處理的;

 

2.3 線程數:請求並非的數量。

 

Ramp-Up Period(in seconds)在多少秒內創建線程數中定義的所有線程;每秒並發數 = 線程數/RUP

循環次數:當前線程組中的測試腳本循環運行次數;

2.4  HTTP Request Defaults:設置http請求默認值;

 

 

 

 

 

 2.5  HTTP Cookie Manager像瀏覽器一樣存儲和發送cookie;如果發送一個http請求的響應中包含Cookie,那么 Cookes Manager就會自動地保存這些Cookie並在所有后來發送到該站點的請求中使用這些Cookie值。

 

 

 2.6 HTTP Header Manager

 

 

 2.7 HTTP Request

 

 

 2.8 Response Assertion(響應斷言):

 

 

 2.9 Flow Control Action(請求延遲):

 

 

 2.10 Uniform Random Timer(均勻隨機定時器):

 

 

 2.11 View Results Tree(查看結果樹):

 

 

 3Jmeter實現簡單的接口測試,添加響應斷言,使用百度舉例。

 

 

 

 

 

 如下就是響應斷言,百度二下的斷言是失敗的;百度一下的斷言結果是成功的,所有未打印出來。

 

 

 3.1 添加HTTP信息頭管理器:

 

 

 再此請求,執行完查看結果樹,Request Headers中添加了Content-Type:application/json類型。

 

 

 3.2、通過httpbin.org (是一個開源的,支持HTTP請求和響應的測試網站)這個項目進一步做簡單的練習。

 

3.2.1  post請求:

         接口請求說明:

 

 

 查看結果樹:

 

 

 

 

 

 3.2.3  put請求

 

 

 

 

 

 

   

 

4、線程用戶之setUptearDown

 

4.1 平時測試當個接口時,我們使用線程組;而setUptearDown線程組作用等同於unittest測試框架中的setUptearDownsetUp線程組一般用於登錄等,而tearDown一般用於釋放資源等。

4.2  setUptearDown及接口測試的練習,根據結果樹的結果看,執行順序就是按照setUp->測試線程組->tearDown的順序執行。

 

 

 5、配置元件之CSV數據文件配置

 

5.1 單線程讀取CSV數據文件實現參數化

         建一個如下的CSV數據:

 

 

 JmeterCSV元件的配置:

 

 

 請求界面配置:

 

 

 運行結果:

 

 

 5.2 邏輯控制器

 

5.2.1邏輯控制器之循環控制器

根據上個章節的結果,一個線程運行一次只能讀取一行,如果一次要將所有行的數據都執行,就需要使用邏輯控制器的循環控制器。

 

 

 執行結果:

 

 

 5.2.2 邏輯控制器之if控制器

第一種寫法:去掉Interpret Condition as Variable Expression?的勾選,直接寫判斷條件

 

 

 第二種寫法:默認寫法(勾選Interpret Condition as Variable Expression?),使用帶有變量的表達式。

 

 

 6、監聽器之查看結果樹+斷言結果 +聚合報告+圖形結果+用表格查看結果。

 

6.1.1 查看結果樹

 

         查看結果樹上面的很多例子都有查看結果樹,這里就不做過多闡述了。

 

6.1.2 斷言結果

         之前的章節說過斷言,這里要講的是斷言結果保存到本地文件中;可以選擇需要保存的文件格式,有三種文件格式,Jmeter自身的文件格式jtl,還有xmlCSV,在工作中根據需要選擇。

 

 

 打開本地文件,保存的結果如下:

 

 

 6.1.3聚合報告

 

 

 6.1.4圖形結果

 

 

 6.1.5 用表格查看結果

 

 

 7. 配置元件之用戶定義的變量+抽離公共數據

 

7.1 用戶自定義變量的2種方式

7.1.1第一種是手動添加組件,配置元件-->用戶自定義變量

 

 

 7.1.2第二種是測試計划內部的用戶自定義變量

 

 

 7.2 引用變量,JMeter產生變量的方式有10多種,前置/后置/函數助手/CSV組件/用戶定義的變量/用戶參數/JDBC請求等等,但是,引用變量的方式只有一種。

 

 

 

 8. 參數傳遞

         在工作中接口測試的時候需要傳遞token,,此時就需要進行參數傳遞,Jmeter很方便的實現參數的傳遞,需要用到beanshell解釋器。

 

8.1 傳參方式

8.1.1 內置變量

 

 8.1.2 函數助手

 

 8.2 傳參形式

8.2.1 同線程組

 

 8.2.2 跨線程組

 

 8.3 以跨線程組舉例

       第一步,使用json提取器獲取token:

 

 第二步:使用BeanShell后置處理器將獲取的token存儲到Jmeter變量。

 

 第三步:引用上一步的變量即可。

 

 最后,查看結果樹:傳遞token值成功。

 

 9. 后置處理器

 

9.1 json提取器

         jSON 后處理器使您能夠使用 JSON-PATH 語法從 JSON 響應中提取數據。此后處理器與正則表達式提取器非常相似。它必須作為 HTTP 采樣器或任何其他具有響應的采樣器的子級放置.

 

 可以在查看結果樹里面進行調試。

 

 9.2 正則表達式提取器

         使用 Perl 類型的正則表達式(不過多贅述正則表達式的類型)從服務器響應中提取值。作為后處理器,此元素將在其作用域中的 請求之后執行,應用正則表達式、提取請求的值、生成模板字符串並將結果存儲到給定的變量名稱中。

 

 

 

 在查看結果樹種進行調試:

 

 9.3 邊界提取器

         允許用戶使用左和右邊界從服務器響應中提取值。作為后處理器,此元素將在其作用域中的每個取樣器請求之后執行,測試邊界、提取請求的值、生成模板字符串並將結果存儲到給定的變量名稱中。

 

 在查看結果樹種調試:

 

 9.4 其他提取器:

 

  //CSS提取器

 

https://jmeter.apache.org/usermanual/component_reference.html#CSS_Selector_Extractor

 

  //XPath提取器

 

https://jmeter.apache.org/usermanual/component_reference.html#XPath2_Extractor

 

  //結果狀態操作處理程序

https://jmeter.apache.org/usermanual/component_reference.html#Result_Status_Action_Handler

9.5 Json提取器+正則表達式提取器+邊界提取器的應用

 

 退出接口使用添加接口的響應數據,使用關聯參數:

 

 查看結果樹:

 

 10. 前置處理器

 

       前置處理器主要用來處理請求前的一些准備工作,比如參數設置、環境變變量設置、加密等操作。本章介紹最常用的2種前置處理器。

 

10.1 JDBC預處理程序

 

       平時在我們做測試的過程的常用場景有:第一,准備了大量的測試數據,CSV文件使用不方便,就放到數據庫里,那么,測試之前需要把測試數據讀取出來;第二,接口參數比較多,一個一個入參比較麻煩,從庫里導出准確數據,然后進行修改調整;

 

10.1.1 JDBC連接說明

       由於Jmeter默認沒有提供MySQL的驅動,所以要自行下載,將下載好的驅動放到:lib-->ext目錄下。

 

 10.1.2 連接示例

 

       地址寫法:

 

       //  jdbc:數據庫類型://地址

       jdbc:mysql://127.0.0.1:3306

 

 連接數據庫,這個步驟要注意:SQL語句和類型是否對應。

 

 示例:

 

 10.2 BeanShell預處理程序

       BeanShell 這個在調整亂碼的時候用到過,大家已經知道這個組件就是編寫Java代碼的了,這個組件的使用場景有哪些?最直接的,接口數據加密(執行測試用例之前進行加密),常見的加密方式如下:

 

 加密前:

 

 加密后:

 

 11. 常用斷言

 

11.1 json斷言

 

         JSON斷言組件適用於返回數據是JSON格式的,JSON 文檔執行驗證。首先,它將解析 JSON,如果數據不是 JSON,它將失敗。JSON斷言有兩種匹配規則:

 

a. 使用JsonPath的語法搜索指定的路徑。如果未找到路徑,它將失敗。

b.如果在文檔中找到 JSON 路徑,並且請求對預期值進行驗證,它將執行驗證。對於null值,GUI 中有一個特殊的復選框。

 

 11.2 大小斷言

         大小斷言測試每個響應中包含正確的字節數。可以指定大小等於、大於、小於或不等於給定的字節數。

 

 12.生成HTML報告

 

         Jmeter生成測試報告有2種方式,GUL生成和CLI生成。

 

12.1 GUL生成

         jmeter3.0 版本之后開始支持動態生成測試報表(3.0版本的Dashboard Report模塊會中文亂碼)GUI 模式下,性能測試的結果往往誤差很大,因為 GUI 本身就會消耗一部分資源,所以不會使用GUI生成測試報告;功能測試下,通常只看察看結果樹,運行是否正確,然后就把腳本拋到集成工具上了,也不會使用GUI生成測試報告。

 

                                                打開位置

 

 12.2 CLI生成

 

 PS D:\apache-jmeter-5.3\test> jmeter -n -t test.jmx -l result.jtl -e -o html//命令

Creating summariser <summary>
Created the tree successfully using test.jmx
Starting standalone test @ Fri Jun 2611:02:51 CST 2020(1593140571507)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary +     11in00:00:08=    1.3/s Avg:   729 Min:     1 Max:  1107 Err:     4(36.36%) Active:1 Started:3 Finished:2
summary +      7in00:00:05=    1.6/s Avg:   637 Min:     1 Max:   913 Err:     2(28.57%) Active:0 Started:1 Finished:1
summary =     18in00:00:13=    1.4/s Avg:   693 Min:     1 Max:  1107 Err:     6(33.33%)
Tidying up ...    @ Fri Jun 2611:03:04 CST 2020(1593140584695)

 

 

 由於測試報告是一個文件,建議和配套的HTTP服務器使用,把報告放到服務上。

 

 生成的報告:

 

 生成的測試報告(自帶的是性能測試報告,附帶很多信息),官網詳解:

https://jmeter.apache.org/usermanual/generating-dashboard.html

 

 

 

 

 

 

 

1.2 解壓到本地之后,一般常用的有2種方式啟動:

 1.2.1

         直接啟動:打開apache-jmeter-5.3\bin\jmeter.bat 批處理文件,就可打開Jmeter.

 1.2.2 命令行啟動:需要設置環境變量

        先設置 JMETER_HOME=E:\AutoTest\apache-jmeter-5.3

        再在系統變量Path中添加: %JMETER_HOME%\bin

        最后還要在CLASSPATH中添加:

        %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar.

         環境變量設置完畢之后,在命名行輸入jmeter即可打開Jmeter.

        

1.3 Jmeter中文顯示:初學者直接使用中文有助於很快理解很多功能;在bin目錄下打開jmeter.properties文件,將#language=en #注釋去掉,en修改為zh_CN,保存之后重啟Jmeter

 


免責聲明!

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



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