1. 程式人生 > 其它 >收下這份實操案例,還怕不會用Jmeter介面測試工具?!

收下這份實操案例,還怕不會用Jmeter介面測試工具?!

 

每天進步一點點,關注我們哦,每天分享測試技術文章

本文章出自【碼同學軟體測試】

碼同學公眾號:自動化軟體測試,領取資料可加:magetest

碼同學抖音號:小碼哥聊軟體測試

01

簡介

 

 

JMeter,一個100%的純Java桌面應用,由Apache組織的開放原始碼專案,它是介面功能、自動化、性 能測試的工具。具有高可擴充套件性、支援HTTP、HTTPS、TCP、等多種協議,還可以自己編寫Java指令碼對 協議進行擴充套件。

官方網站:https://jmeter.apache.org

 

 

02

安裝和配置

 

 

1、本機安裝好jdk環境

2、官網下載壓縮包,在任意目錄下解壓

3、修改配置檔案,開啟Jmeter的bin目錄下jmeter.properties,修改:

language=zh_CN

sampleresult.default.encoding=utf-8

⚠️注意:要把配置前面的註釋#去掉才能生效

 

4、進入到Jmeter的bin目錄下,雙擊jmeter.bat啟動

 

 

03

Jmeter常用元件

 

 

在Jmeter中,可以通過新增不同的元件,來實現不同的功能,常用的元件有:

測試計劃

一個最基本的元件,所有的其他元件都要在它的內部執行。

執行緒組

執行緒組代表了一組使用者,它可以模擬1個或多個使用者,可以發起1次或多次請求,也可以連續傳送n秒的 請求。

取樣器

取樣器代表了一個請求,比如HTTP請求,TCP請求等,通過配置服務端介面的ip、埠號和引數等信 息,就可以向服務端傳送資料,並拿到響應。

斷言

斷言就是一個預期結果,斷言通常是針對某個HTTP請求的,判斷HTTP的返回值是否符合斷言的規則, 比如是否包含“success”,狀態碼是否是200等。如果斷言通過,Jmeter就認為HTTP請求成功,否則就標 記為失敗。

監聽器

監聽器就是在Jmeter測試過程中,獲取一些執行資料,比如傳送了多少次請求、成功了多少次,失敗了 多少次。每次請求和響應的具體內容等。

 

 

04

編寫一個HTTP介面指令碼

 

 

開啟碼同學商城賣家管理後臺登入頁面,輸入使用者名稱密碼進行登入,通過fiddler,可以抓包登入介面的資訊:

 

url:/seller/login

 

請求方式:GET

引數:

username=mtx-001&password=e10adc3949ba59abbe56e057f20f883e&captcha=1512&uuid=c9835a40-047b- 11ec-ae8f-41d7ee6b2a89

 

免費領取碼同學軟體測試課程筆記+超多學習資料+完整視訊+面試題,可加微信:magetest

第一步:建立執行緒組

在測試計劃上右鍵,新增執行緒組,保持預設

第二步:建立HTTP請求

線上程組上右鍵,新增取樣器-HTTP取樣器,並根據介面的資訊,填寫協議型別、伺服器ip、埠號、 請求方式、路徑、請求引數等資訊

第三步:建立監聽器

線上程組上右鍵,新增監聽器-檢視結果樹,,點選選單欄執行按鈕,這樣就能看到介面執行後的請求和 返回資料

 

 

05

斷言

 

 

預設情況下,Jmeter會根據介面的響應狀態碼是否為200來判斷介面是否成功,但是很多時候,200只能代表HTTP請求成功了,但是業務上未必成功。因此還需要對介面的返回資料做判斷。因此可以使用 Jmeter斷言來對返回資料做判斷。

 

斷言通常是針對某個HTTP請求的,判斷HTTP的返回值是否符合斷言的規則,比如是否包含“success” 等,如果斷言通過,Jmeter就認為HTTP請求成功,否則就標記為失敗,在檢視結果樹中標記為紅色。

 

常用的斷言有Json斷言和響應斷言

 

Json斷言

針對介面返回是json格式資料的,可以使用json斷言,它可以判斷json字串中的某個值是否符合預期。

比如,登入介面成功後,伺服器會返回此使用者的username和nickname

{

"access_token":

"eyJhbGciOiJIUzUxMiJ9.eyJzZWxmT3BlcmF0ZWQiOjAsInN1YiI6IkNMRVJLIiwicm9sZSI6IlNVUE VSX1NFTExFUiIsImZvdW5kZXIiOm51bGwsInJvbGVzIjpbIkJVWUVSIiwiU0VMTEVSIiwiQ0xFUksiXS wic2VsbGVyTmFtZSI6IjExMSIsImNsZXJrSWQiOjE2LCJ1dWlkIjpudWxsLCJ1aWQiOjE5NjUsInNlbG xlcklkIjo0MSwiY2xlcmtOYW1lIjoibXR4LTAwMSIsImV4cCI6MTYyOTg3MDU5OCwidXNlcm5hbWUiOi JtdHgtMDAxIn0.BEnmRfCU2nfkqMwQVajaxMP5uoUtcyoAsTHMkaK_9RoHwaxS0GNUDY- 9I048wx8LX7pmyMqWl70Q4B31dlVTHw",

"uid": 1965,

"refresh_token":

"eyJhbGciOiJIUzUxMiJ9.eyJzZWxmT3BlcmF0ZWQiOjAsInN1YiI6IkNMRVJLIiwicm9sZSI6IlNVUE VSX1NFTExFUiIsImZvdW5kZXIiOm51bGwsInJvbGVzIjpbIkJVWUVSIiwiU0VMTEVSIiwiQ0xFUksiXS wic2VsbGVyTmFtZSI6IjExMSIsImNsZXJrSWQiOjE2LCJ1dWlkIjpudWxsLCJ1aWQiOjE5NjUsInNlbG xlcklkIjo0MSwiY2xlcmtOYW1lIjoibXR4LTAwMSIsImV4cCI6MTYyOTg3MTE5OCwidXNlcm5hbWUiOi JtdHgtMDAxIn0.54MSaFcXIuGexBeXY-79oO5_8tAHvmEvtbJ0qKUE9A5VpqKmbECahX4zcb_2XQEox- H0aIZX49P9ncRrH22Jgg",

"face": null,

"role_id": 0,

"founder": 1,

"nickname": "mtx-001",

"username": "mtx-001"

}

新增json斷言,判斷伺服器返回的username是否符合預期。

在HTTP請求上,右鍵新增json斷言

解釋:

Assert JSON Path exists:填寫Json路徑表示式,其中$代表整個json,$.username就是 username對應的值

Additionally assert value:是否對Json路徑表示式對應的值進行判斷

Expected Value:期望值的內容,填寫你的期望值

Json Path的更多詳細用法參見:https://github.com/json-path/JsonPath

 

響應斷言

響應斷言的應用範圍更廣一些,只要返回的響應內容是文字內容,無論什麼格式,HTML、Json等,響 應斷言都可以判斷 在HTTP請求上右鍵,新增響應斷言

解釋:

測試欄位:對哪部分資料進行判斷,預設是響應內容

模式匹配規則:判斷規則,預設是包含字串

測試模式:具體判斷的內容

 

免費領取碼同學軟體測試課程筆記+超多學習資料+學習完整視訊 ☞ 可加:magetest/關注碼同學公眾號:自動化軟體測試

本文著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。