收下這份實操案例,還怕不會用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
引數:
免費領取碼同學軟體測試課程筆記+超多學習資料+完整視訊+面試題,可加微信: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/關注碼同學公眾號:自動化軟體測試
本文著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。