首先要理解為什么要進行批量測試,當我們在工作中進行接口測試時,項目的接口肯定不止一個,而是很多很多,而且每個接口都需要進行正確參數,錯誤參數,參數為空,特殊字符等方式來測試接口是否能夠正確返回所需的響應值。
在編寫腳本之前可以先漢化JMeter,找到JMeter解壓/安裝路徑下的JMeter.properties,用編輯器打開(右鍵用記事本打開也可以):找到 #language=en ,在下面添加:language=zh_CN 並重啟JMeter
那么我們該如何通過JMeter來完成批量測試呢? 我們先建立一個較為簡單的方式進行測試腳本觀察一下。
以去獲取創建訂單時的【省/市/區信息】接口:api.test.XXXXXX.com/api/XXXX/XXXX/getAddress 請求方法:post 請求參數:type,code為例
1、添加線程組
測試計划右鍵選擇添加——線程用戶——線程組。
Setup線程組:用於執行預測試操作
tearDown:用於執行測試后操作
線程組:一般測試接口時添加的線程,可以把它看做一個虛擬的用戶組,線程組中的每一個線程都可以理解為一個虛擬用戶
2、添加HTTP信息頭管理器。
線程組右鍵選擇添加——配置元件——HTTP信息頭管理器
如果接口信息頭定義了值的話,需要放到信息頭管理器里面,例如:用戶token,公共參數等。
3、添加HTTP請求
線程組右鍵添加——取樣器——HTTP請求
協議:默認HTTP協議,可不填寫,若為HTTPS協議需要填寫HTTPS。
服務器名稱或IP:填寫接口域名
端口號:默認HTTPS請求的80,若為HTTPS請求需要填寫443
方法:直接選擇接口的請求方法:GET,POST,PUT,DELETE即可。
路徑:填寫接口的具體路徑
參數:點擊下方導航欄添加按鈕,在已經添加的數據欄填寫參數名,參數值。
4、添加察看結果樹
線程組右鍵添加——監聽器——察看結果樹
左邊:展示請求名,綠色請求結果表示請求成功,紅色請求結果表示請求失敗。
右邊:展示請求值,包括取樣器結果,請求頭,請求體,響應頭,響應體。
以上步驟能夠確保接口正確的進行訪問並返回對應的返回值。
完成以上步驟后,下一步就是要把上面步驟的所有的值以參數的形式傳遞給JMeter腳本,使我們能夠以參數化的形式對接口進行批量測試。
5、添加循環控制器
線程組右鍵添加——邏輯控制器——循環控制器,循環控制器添加后需要把【HTTP信息頭管理器】【HTTP請求】移到【循環控制器下】
循環次數:運行腳本后循環控制器下的HTTP請求將執行的次數。例如:循環控制器的計數為1,則發送HTTP請求1次;計數為5,則發送HTTP請求5次。設置為永遠則需要手動停止請求,否則不會停止請求。
6、在循環控制器下添加CSV配置文件
循環控制器右鍵添加——配置元件——CSV數據文件設置,CSV文件里面定義接口所需要動態取值的參數,例如:URL,路徑,請求方法,接口參數等。
a)如何創建CSV文件?電腦桌面新建TXT文檔,更名為:測試參數文檔.CSV(TXT后綴需要變更為CSV),打開CSV文件新增數據。
b)文件內參數如何書寫?第一行定義接口所需動態參數,自第二行起填寫接口詳細值。
caseSeq:定義接口序號
apiSeq:每個接口序列
apiName:接口名稱
url:接口域名
api:接口地址
function:接口請求方法
purpose:描述接口驗證類型
parameter:接口所需參數拼接,以:“code=500000&type=city”的形式,參數間以“&”連接
c)csv數據文件如何設置
文件名:點擊瀏覽后選擇本地的CSV文件
文件編碼:一般情況下無需設置
變量名稱:“caseSeq,apiSeq,apiName,url,api,function,purpose,parameter”,參數之間需要用英文的逗號隔開,注意參數不要寫錯。
忽略首行:True則不執行CSV文件的首行,False則執行CSV文件首行。
分隔符:英文逗號,無需變更
是否允許帶引號:設置True和False以當前CSV文件都能正常執行
遇到文件結束符再次循環:True則在設置的循環次數內一直循環,False則CSV文件所有數據循環一次后就停止。
遇到文件結束符停止線程:True則在設置的循環次數內執行到CSV文件數據為空時停止發送HTTP請求,False則在設置的循環次數內執行到CSV文件數據為空時繼續執行。
線程共享模式:選擇所有現場即可
綜上:本次CSV文件設置時:循環次數“永遠”,忽略首行“True”,是否允許帶引號“False”,遇到文件結束符再次循環“False”,遇到文件結束符停止線程“True”,線程共享模式“所有現場”
7、其他配置文件需要修改寫入形式
HTTP信息頭管理器:除必要參數外,添加:“Content-Type=application/x-www-form-urlencoded”,使用Json參數需要用到
HTTP請求:名稱設置為:“${caseSeq}_${apiSeq}_${apiName}”動態取CSV文件里面配置的參數信息;IP:“${url}”;方法:“${function}”;路徑:“${api}”,消息體數據:“${parameter}”消息體數據和參數只能設置一種,不能兩種同時設置。
8、執行CSV文件,查看結果
可以看到左邊能夠很清晰的反應接口執行的信息,右邊可以很明確的反應接口返回的數據。並且CSV文件內可以設置眾多接口的不同驗證方式,很方便且很適合日常工作使用。希望以上內容能給大家提供幫助,謝謝。
備注:轉載請注明出處,謝謝。