Jmeter 性能測試入門

目錄

一、Jmeter 簡介

二、Jmeter 安裝

2.1、JDK安裝

2.2、Jmeter 安裝

三、Jmeter 性能測試

3.1、接口地址

3.2、請求參數

3.3、返回結果

四、Jmeter  腳本編寫

4.1、添加線程組

4.2、添加HTTP請求

4.3、添加查看結果樹

4.4、添加用戶自定義變量

4.5、添加斷言

4.6、添加斷言結果

4.7、添加聚合報告

五、Jmeter 性能測試執行

5.1、配置線程組

5.2、執行測試

六、測試報告分析

七、總結


一、Jmeter 簡介

Jmeter是Apache組織開發的基於Java的壓力測試工具。Jmeter被廣泛應用到測試領域,可做接口測試、壓力測試、性能測試等。本文介紹Jmeter性能測試

二、Jmeter 安裝

2.1、JDK安裝

安裝後配置系統環境變量,參考這一篇DOS窗口下運行HelloWorld顯示錯誤:找不到或無法加載主類文章配置

2.2、Jmeter 安裝

Jmeter 安裝參考這一篇Jmeter 中文版安裝指南(零基礎)文章配置

三、Jmeter 性能測試

用常見的百度接口作爲例子

3.1、接口地址

http://www.baidu.com/s?ie=utf-8&wd=jmeter性能測試

複製地址去瀏覽器試一下,OK。

3.2、請求參數

ie:編碼方式,默認爲utf-8,wd: 搜索詞

3.3、返回結果

搜索結果,我們可以通過校驗結果中是否含有搜索詞wd來判斷本次請求成功或失敗

四、Jmeter  腳本編寫

步驟在上兩篇博文已有介紹,學會的同學可以快速過

4.1、添加線程組

測試計劃,右鍵添加->線程(用戶)->線程組

這裏可以配置線程組名稱,線程數,準備時長(Ramp-Up Period(in seconds))循環次數,調度器等參數:

 

線程組參數解釋:
       1、線程數:虛擬用戶數。一個虛擬用戶佔用一個進程或線程。設置多少虛擬用戶數在這裏也就是設置多少個線程數。
       2、Ramp-Up Period(in seconds)準備時長:設置的虛擬用戶數需要多長時間全部啓動。如果線程數爲10,準備時長爲2,那麼需要2秒鐘啓動10個線程,也就是每秒鐘啓動5個線程。
       3、循環次數:每個線程發送請求的次數。如果線程數爲10,循環次數爲100,那麼每個線程發送100次請求。總請求數爲10*100=1000 。如果勾選了“永遠”,那麼所有線程會一直髮送請求,一到選擇停止運行腳本。
       4、Delay Thread creation until needed:直到需要時延遲線程的創建。
       5、調度器:設置線程組啓動的開始時間和結束時間(配置調度器時,需要勾選循環次數爲永遠)
       持續時間(秒):測試持續時間,會覆蓋結束時間
       啓動延遲(秒):測試延遲啓動時間,會覆蓋啓動時間
       先使用默認配置,進行接口調試。執行性能測試的時候再進行配置
       接口測試前面的博文已寫

4.2、添加HTTP請求

線程組,右鍵添加->取樣器->HTTP請求

對於我們的接口http://www.baidu.com/s?ie=utf-8&wd=jmeter性能測試,可以參考下圖填寫: 

Http請求主要參數解釋:
       1、Web服務器
       協議:向目標服務器發送HTTP請求協議,可以是HTTP或HTTPS,默認爲HTTP
       服務器名稱或IP :HTTP請求發送的目標服務器名稱或IP
       端口號:目標服務器的端口號,默認值爲80
       2、Http請求
       方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
       路徑:目標URL路徑(URL中去掉服務器地址、端口及參數後剩餘部分)
       Content encoding :編碼方式,默認爲ISO-8859-1編碼,這裏配置爲utf-8
       同請求一起發送參數
       在請求中發送的URL參數,用戶可以將URL中所有參數設置在本表中,表中每行爲一個參數(對應URL中的 name=value),注意參數傳入中文時需要勾選“編碼” 

4.3、添加查看結果樹

線程組,右鍵添加->監聽器->查看結果樹

點擊啓動

 這時,我們運行Http請求,修改響應數據格式爲“HTML Source Formatted”,可以看到本次搜索返回結果頁面標題爲”百度安全驗證“。

 咦,不應該是返回結果頁面標題爲”jmeter性能測試_百度搜索“嗎?這是因爲百度現在不允許做壓測了,可以添加一個參數tn ,值爲monline_4_dg(模擬http請求)

再次點擊運行就有返回值了

4.4、添加用戶自定義變量

線程組,右鍵添加->配置元件->用戶定義的變量

 新增一個變量wd,存放搜索詞

並在Http請求中使用該參數,語法爲:${wd}

4.5、添加斷言

前面的博文已有詳細的記錄,不會的再看着做一遍。HTTP請求,右鍵添加->斷言->響應斷言

我們校驗返回的文本中是否包含搜索詞,添加參數${wd}到要測試模式中

4.6、添加斷言結果

HTTP請求,右鍵添加->監聽器->斷言結果

這時,再點擊運行一次就可以看到斷言結果成功或失敗了

       斷言成功

斷言失敗 (注意這裏可以把匹配模式改一下就會失敗,如下)

 結果失敗了

4.7、添加聚合報告

線程組,右鍵添加->監聽器->聚合報告,用來存放性能測試報告

 於是,第一次編寫的第一個的完整http接口的jmeter性能測試腳本完成

五、Jmeter 性能測試執行

5.1、配置線程組

點擊線程組,配置本次性能測試相關參數:線程數,循環次數,持續時間等,這裏我們配置併發用戶數爲10,持續時間爲60s

5.2、執行測試

匹配模式改回去

 執行測試前點擊掃把,清除之前的結果,再點擊運行

六、測試報告分析

等待一會,打開聚合報告

 聚合報告參數解釋

1、Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這裏顯示的就是 Name 屬性的值

2、#樣本(Samples):請求數——表示這次測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那麼這裏顯示100

3、平均值(Average):平均響應時間——默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,以Transaction 爲單位顯示平均響應時間

4、中位數(Median):中位數,也就是 50% 用戶的響應時間

5、90% 百分位(90% Line):90% 用戶的響應時間

6、最小值(Min):最小響應時間

7、最大值(Max):最大響應時間

8、異常%(Error%):錯誤率——錯誤請求數/請求總數

9、吞吐量(Throughput):吞吐量——默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數

10、KB每秒(KB/Sec):每秒從服務器端接收到的數據量,相當於LoadRunner中的Throughput/Sec

一般而言,性能測試中我們需要重點關注的數據有: #Samples 請求數,Average 平均響應時間,Min 最小響應時間,Max 最大響應時間,Error% 錯誤率及Throughput 吞吐量

七、總結

性能測試是軟件測試工程師必知必會的內容,在面試中面試官經常會提問你會不會性能測試,性能測試怎麼測,用的什麼性能測試工具,性能測試常用指標有哪些等等。通過本節課的練習,發現性能測試入門也是很簡單的,只不過在不瞭解的人眼裏,覺得性能測試很高大上,特別是對於剛轉行的人來說。希望大家能好好學習,做一個優秀的軟件測試工程師

2020年4月23日

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章