全網最全最細的jmeter介面測試教程以及介面測試流程詳解
- 2020 年 4 月 23 日
- 筆記
- API介面自動化測試, 軟體測試
一、Jmeter簡介
Jmeter是由Apache公司開發的一個純Java的開源項目,即可以用於做介面測試也可以用於做性能測試。
Jmeter具備高移植性,可以實現跨平台運行。
Jmeter可以實現分散式負載。
Jmeter採用多執行緒,允許通過多個執行緒並發取樣或通過獨立的執行緒對不同的功能同時取樣。
Jmeter具有較高擴展性。
二、Jmeter安裝
1、安裝JDK,必須JDK1.7以上的版本,推薦1.8的版本
2、進入官網://jmeter.apache.org/download_jmeter.cgi 下載最新的Jmeter版本,下載後解壓到非中文目錄,如:D:\
3、配置Jmeter的環境變數。
(1) 新增變數:JMETER_HOME:D:\apache-jmeter-5.2.1
(2) 在CLASSPATH變數的最前面加入如下變數: %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;
(3)在PATH變數的最前面加入如下變數:%JMETER_HOME%\bin;
4、進入D:\apache-jmeter-5.2.1\bin,雙擊jmeter.bat,或在dos窗口輸入jmeter命令打開jmeter介面,安裝成功。
對於真正的零基礎來說:安裝請按如下步驟完成:
windows下安裝jmeter? mac下安裝jmeter? So Easy那多不是事!寫給jmeter入門的朋友!
//www.cnblogs.com/csmashang/p/12672157.html
三、設置Jmeter語言為中文環境
1、臨時設置
Jmeter菜單欄選擇OptionsàChoose LanguageàChinese (Simplified)
這種方法,重啟軟體後又變為英文環境了。
2、永久設置
進入apache-jmeter-5.2.1\bin目錄,找到「jmeter.properties」文件,在文件的第37行後添加「language=zh_CN」,保存之後再打開jmeter就永久變為中文環境了。
四、Jmeter主要元件
1、測試計劃:是使用 JMeter 進行測試的起點,它是其它 JMeter測試元件的容器
2、執行緒組:代表一定數量的用戶,它可以用來模擬用戶並發發送請求。實際的請求內容在Sampler中定義,它被執行緒組包含。
3、配置元件:維護Sampler需要的配置資訊,並根據實際的需要修改請求的內容。
4、前置處理器:負責在請求之前工作,常用來修改請求的設置
5、定時器:負責定義請求之間的延遲間隔。
6、取樣器(Sampler):是性能測試中向伺服器發送請求,記錄響應資訊、響應時間的最小單元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一種不同類型的sampler 可以根據設置的參數向伺服器發出不同類型的請求。
7、後置處理器:負責在請求之後工作,常用獲取返回的值。
8、斷言:用來判斷請求響應的結果是否如用戶所期望的。
9、監聽器:負責收集測試結果,同時確定結果顯示的方式。
10、邏輯控制器:可以自定義JMeter發送請求的行為邏輯,它與Sampler結合使用可以模擬複雜的請求序列。
五、Jmeter元件的作用域和執行順序
1.元件作用域
配置元件:影響其作用範圍內的所有元件。
前置處理器:在其作用範圍內的每一個sampler元件之前執行。
定時器:在其作用範圍內的每一個sampler有效
後置處理器:在其作用範圍內的每一個sampler元件之後執行。
斷言:在其作用範圍內的對每一個sampler元件執行後的結果進行校驗。
監聽器:在其作用範圍內對每一個sampler元件的資訊收集並呈現。
總結:從各個元件的層次結構判斷每個元件的作用域。
2.元件執行順序:
配置元件->前置處理器->定時器->取樣器->後置處理程式->斷言->監聽器
注意事項:
1.前置處理器、後置處理器和斷言等組件只能對取樣器起作用,因此,如果在它們的作用域內沒有任何取樣器,則不會被執行。
2.如果在同一作用域內有多個同一類型的元件,則這些元件按照它們在測試計劃中的上下順序依次執行。
六、Jmeter進行介面測試流程
使用Jmeter進行介面測試的基本步驟如下:
1.測試計劃
2.執行緒組
3.HTTP Cookie管理器
4.Http請求默認值
5.Sampler(HTTP請求)
6.斷言
7.監聽器(查看結果樹、圖形結果、聚合報告等)
七、Jmeter進行介面測試流程步驟詳解
1、測試計劃
打開Jmeter,在菜單左側出現 「測試計劃」。在這裡測試計劃我們可以把它理解成新建的空白項目,在這個空白項目下面可以添加一系列的介面。
2、執行緒組
添加方法:右鍵點擊Test Plan->添加->執行緒(用戶)->執行緒組。
元件描述:一個執行緒組可以看做一個虛擬用戶組,執行緒組中的每個執行緒都可以理解為一個虛擬用戶。
(1)執行緒數:即虛擬用戶數。設置多少個執行緒數也就是設置多少虛擬用戶數
(2)Ramp-Up時間(秒):設置虛擬用戶數全部啟動的時長。如果執行緒數為20,準備時長為10秒,那麼需要10秒鐘啟動20個執行緒。也就是平均每秒啟動2個執行緒。
(3)循環次數:每個執行緒發送請求的個數。如果執行緒數為20,循環次數為10,那麼每個執行緒發送10次請求。總請求數為20*10=200。如果勾選了「永遠」, 那麼所有執行緒會一直發送請求,直到手動點擊工具欄上的停止按鈕,或者設置的執行緒時間結束。
3、HTTP Cookie管理器
添加方法:右鍵執行緒組->添加->配置元件->HTTP Cookie管理器。
元件描述:HTTP Cookie管理器可以像瀏覽器一樣存儲和發送cookie,如果你要發送一個帶cookie的http請求,cookie manager會自動存儲該請求的cookies,並且後面如果發送同源站點的http請求時,都可以用這個cookies。
4、HTTP請求默認值
添加方法:右鍵執行緒組->添加->配置元件->HTTP請求默認值。
元件描述:HTTP請求默認值是為了方便填寫後續內容而設置。主要填寫[伺服器名稱或IP]和[埠號],後續的HTTP請求中就不用每次都填寫IP地址和埠號了。
5、HTTP請求
添加方法:右鍵執行緒組->添加->Sampler->HTTP請求。
元件描述:HTTP請求包括介面請求方法、請求路徑和請求參數等。
HTTP請求詳解
(1)名稱:本屬性用於標識一個取樣器,建議使用一個有意義的名稱。
(2)注釋:對於測試沒有任何作用,僅用戶記錄用戶可讀的注釋資訊。
(3)伺服器名稱或IP :HTTP請求發送的目標伺服器名稱或IP地址。
(4)埠號:目標伺服器的埠號,默認值為80 。
(5)協議:向目標伺服器發送HTTP請求時的協議,可以是HTTP或者是HTTPS ,默認值為http 。
(6)方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、TRACE、OPTIONS、DELETE等。
(7)路徑:目標URL路徑(不包括伺服器地址和埠)
(8)內容編碼:內容的編碼方式,默認值為iso8859
(9)自動重定向:如果選中該選項,當發送HTTP請求後得到的響應是302/301時,JMeter 自動重定向到新的頁面。
(10)使用keep Alive :保持jmeter 和目標伺服器之間的活躍狀態,默認選中
(11)對Post使用multipart/from-data:當發送POST 請求時,使用multipart/from-data方法發送,默認不選中。
(12)同請求一起發送參數 : 在請求中發送URL參數,對於帶參數的URL ,jmeter提供了一個簡單的對參數化的方法。用戶可以將URL中所有參數設置在本表中,表中的每一行是一個參數值對(對應RUL中的 名稱1=值1)。
6、響應斷言
添加方法:右鍵HTTP請求->添加->取樣器->HTTP請求。
元件描述:檢查介面是否訪問成功。如果檢查失敗的話會提示找不到斷言的內容,沒提示的話就代表成功了。
Apply to
指斷言作用範圍,通常發出一個請求只觸發一個請求,所以勾選「main sample only」就可以;若發一個請求可以觸發多個伺服器請求,就有main sample 和sub-sample之分了。
(1)Main sample and sub-samples:作用於主請求和子請求
(2)Main sample only:僅僅只作用於主請求
(3)Sub-samples only:僅僅只作用於子請求
(4)Jmeter Variable:作用於jmeter變數(輸入框內輸入jmeter變數名稱)
測試欄位
響應文本(匹配返回的json數據)、響應程式碼(匹配返回碼:如200, 404,500等)、響應資訊(匹配響應資訊如「OK」字樣)、響應頭(匹配響應頭)、請求頭(匹配請求頭)、URL樣本(匹配請求的url鏈接,如果有重定向則包含請求url 和 重定向url)、[文檔(文本)](匹配響應數據的文本形式)、忽略狀態(一個請求有多個響應斷言,第一個響應斷言選中此項,當第一個響應斷言失敗時可以忽略此響應結果,繼續進行下一個斷言。如果下一個斷言成功則還是判定事務是成功的)、請求數據(匹配請求數據)
模式匹配規則
包括:響應內容包含需要匹配的內容即代表響應成功,支援正則表達式。
匹配:響應內容要完全匹配需要匹配的內容即代表響應成功,大小寫不敏感,支援正則表達式。
字元串:響應內容包含需要匹配的內容才代表響應成功,大小寫敏感,不支援正則表達式
相等:響應內容要完全等於需要匹配的內容才代表響應成功,大小寫敏感,不支援正則表達式
否:相當於取反,如果結果為true,勾上否就是false
或者:如果不想用AND連接(所有的模式都必須匹配,斷言才算成功),用OR選項可以用於將多個斷言模式進行OR連接(只要一個模式匹配,斷言就是成功的)
測試模式
其實就是斷言的數據。點擊「添加」按鈕,輸入要斷言的數據。
7、增加監聽器
添加方法:執行緒組 ->右鍵添加 ->監聽器 ->察看結果樹。一般還會一併添加圖形結果、聚合報告。
元件描述:樹狀形式顯示介面的訪問結果,包括請求結果、請求內容、伺服器的響應內容。
八、Jmeter介面測試必定用到的擴展閱讀
1.史上最全的最通俗易懂的-jmeter調試錯誤全集
//blog.csdn.net/pengjiangchun/article/details/105381557
2.jmeter實現介面關聯的兩種方式:正則表達式提取器和json提取器看這篇就夠了
//www.cnblogs.com/csmashang/p/12659093.html
九、總結
如果你對此文有任何疑問,如果你覺得此文對你有幫助,如果你對軟體測試、介面測試、自動化測試、面試經驗交流感興趣歡迎加入軟體測試技術群:695458161,群里發放的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。
作者:來自公眾號:軟測之家
出處://www.cnblogs.com/csmashang/p/12762177.html
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接!