公衆號:AirPythonapi
來源:星安果服務器
1. 前言
日常爲了保證運營促銷、抽獎活動能正常運行,咱們通常都須要使用 Jmeter、LoadRunner 對接口進行壓力測試併發
使用它能夠模擬必定量的用戶同時去參與促銷抽獎活動,最後生成測試報告,以此判系統接口的穩定性app
本篇文章以搶購商品爲例,包含:登陸、搶購 2 個接口;使用 Jmeter 模擬 20 個用戶同步完成搶購操做分佈式
2. 準備
2-1 Mock 接口性能
爲了方便文章講解,這裏使用 VirAPI Mock 了兩個接口:登陸、搶購測試
其中,線程
登陸接口以下:3d
搶購接口以下:
2-2 準備用戶數據
咱們使用 Jmeter 中的 CSV 數據文件設置爲例,在本地建立文本文件,保存 30 個用戶數據
每一條用戶數據包含:用戶手機號碼、密碼、用戶 ID
3. 操做步驟
打開 Jmeter 軟件,咱們完成下列操做
3-1 建立線程組,配置 CSV 數據文件
首先,選中測試計劃,右鍵 - 添加 - 線程(用戶),並對線程組從新進行命名
線程數爲:模擬 30 個用戶
啓動時長:5 秒鐘建立 30 個線程
循環次數:1 次
接着,在當前線程組下建立一個 CSV 數據文件設置,用它導入本地用戶數據
在 CSV 文件配置設置中,關聯本地準備好的用戶數據,並定義關聯變量名,其餘保持默認便可
須要指出的是,這裏指定了 3 個變量,分別是:user、pwd、id,和數據文件中的數據關聯上
3-2 HTTP 請求默認值和 HTTP 信息頭管理器
在線程組下,添加 HTTP 請求默認值,設置公共的服務器地址
步驟:線程組 - 右鍵 - 添加 - 配置元件 - HTTP 請求默認值
接着,添加 HTTP 信息頭管理器,用於設置公共的請求頭
步驟:線程組 - 右鍵 - 添加 - 配置元件 - HTTP 信息頭管理器
好比,這裏能夠添加 VirAPI 應用的 app-token 及 content-type
3-3 登陸請求
在線程組下,添加一個 HTTP 請求:登陸
而後根據 Mock 接口 - 登陸,設置請求的方式、路徑及請求體數據
PS:這裏直接將第一步關聯的變量設置進去便可
3-4 同步定時器
爲了真實地模擬併發去調用搶購接口,在搶購接口以前須要一個同步定時器
同步定時器,能夠保證全部虛擬用戶相互等待,直到全部用戶集合以後,纔開始後續的接口調用
步驟:線程組 - 右鍵 - 添加 - 定時器 - 固定定時器
這裏,設置模擬用戶組的數目和線程數保持一致,這樣,若是虛擬用戶數達不到指定數目,則不會執行後面的操做
3-5 搶購請求
在線程組下,繼續添加一個搶購的 HTTP 請求
一樣根據接口 API,編輯 HTTP 請求的方式、路徑、請求體
3-6 添加請求結果樹、彙總報告、聚合報告
選中線程組,添加請求的結果樹、彙總報告、聚合報告
步驟:線程組 - 右鍵 - 添加 - 監聽器 - 察看結果樹/彙總報告/聚合報告
如此,Jmeter 的配置已完成!
4. 運行
4-1 直接運行
選中線程組,點擊菜單欄的啓動按鈕,便可以模擬併發調用搶購的接口
運行完成後,點擊察看結果樹,能夠發現 30 個虛擬用戶調用搶購接口的開始時間是一致的
另外,在彙總報告和聚合報告中,能夠展現平均響應時間、最大/小響應時間、異常比率、吞吐量等結果數據
4-2 生成測試報告
除了直接運行,也可使用 Jmeter 命令在本地生成測試報告
# -o jmeter_report/ 測試報告生成目錄
jmeter -n -t 搶購-併發測試.jmx -l test.jt1 -e -o jmeter_report/
其中
- -n以非 GUI 的形式運行
- -t指定 Jmeter 配置文件
- -l指定生成日誌文件模板
- -e測試結束後,生成測試報告
- -o測試報告生成目錄
打開測試報告,發現測試結果數據經過圖表的形式詳細地展現出來了
5. 最後
經過上面的步驟,完成了對接口的壓力測試,以此判斷接口的性能及穩定性!
實際項目中,因爲單機的性能瓶頸,對於大量用戶的壓測,建議採用 分佈式壓測 的方式來進行!
若是你以爲文章還不錯,請你們 點贊、分享、留言 下,由於這將是我持續輸出更多優質文章的最強動力!