Locust測試本質上是一個Python程序。這使得它非常靈活,尤其擅長實現復雜的用戶流。所以如果想要流暢的運用Locust,必須熟悉Python語言編寫腳本。
因此,Locust的簡單測試過程,就從這里開始:
一、編寫locustfile腳本文件
from locust import HttpUser, task
class HelloWorldUser(HttpUser):
@task
def hello_world(self):
self.client.get("/hello")
self.client.get("/world")
這將模擬用戶一次又一次地向/hello和/world發出HTTP請求。
把上面的代碼放到一個.py 的Python文件中。然后再該文件所屬的目錄中運行locust命令:
二、啟動Locust
Locust的web界面
啟動Locust之后,打開瀏覽器并將其指向http://localhost:8089.會看到這樣的頁面:
首先設置用戶數量;
其次設置用戶加載和退出的速率;
最后,將測試指向自己的web服務器并啟動它!
下面的屏幕截圖顯示了在以0.5用戶/s的速度運行這個針對40個并發用戶的測試時,將它指向一個響應/hello和/world的服務器。
1、Charts模塊
Locust還可以將結果可視化為圖表,通過Charts模塊,可以查看每秒鐘請求數(RPS)、響應時間(RT)、用戶量(NU)等。
每秒請求數(RPS):
響應時間(毫秒):
虛擬用戶數量:
注意:
解釋性能測試結果是相當復雜的,而且需要專門的業務知識和性能指標參數的了解,但是如果運行的圖開始看起來像上面這樣,最有可能的原因是目標服務/系統無法處理遇到的負載(它超載或“飽和”)
最明顯的跡象是,當達到9個用戶時,響應時間開始快速增長,以至于每秒的請求曲線趨于平緩,盡管仍有新用戶加入。
如果無法生成足夠的負載使系統飽和,或者需要一些關于如何開始深入研究服務器端問題的指針,請繼續關注系列文章的更新。
2、Failure模塊
該模塊會顯示出測試腳本運行中失敗的內容、原因等信息。
這里出現的失敗是因為請求沒有收到返回的內容也不支持這個請求地址。
3、Exceptions模塊
該模塊可以顯示運行中出現的腳本異常等信息。目前看來是沒有異常的,說明腳本運行沒有問題。
4、Tasks模塊
該模塊顯示運行中的腳本和任務:
包括運行的測試腳本的信息;
每個類別(請求的)的用戶比例;
總比例。
5、Download Data模塊
數據下載模塊可以提供請求統計、失敗情況、異常情況、測試報告等信息的下載。
三、控制測試腳本的運行
1、編輯和設計測試腳本
通過點擊Locust運行狀態【status】模塊中的【edit】,打開設置,可以設置用戶數量和加載速度。
2、結束測試腳本運行
可以點擊【stop】按鈕結束測試場景運行。
3、重置運行統計數據
可以點擊【Reset stats】按鈕重置統計數據。
四、直接使用命令行/無頭
使用Locust的web UI是完全可選的。可以在命令行上提供加載參數,并以文本形式獲得結果報告:
要在多個Python進程或機器上運行Locust,可以使用——master命令行參數啟動單個Locust主進程,然后使用——worker命令行參數啟動任意數量的Locust工作進程。
更多關于軟件測試培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。