1. 程式人生 > 其它 >locust效能測試實戰

locust效能測試實戰

一、locust是非常優秀的效能測試工具,它是依賴於Python的環境,所以了使用它的前提是首先需要安裝它

 

二、locust是基於協程的設計,什麼是協程,可以把它理解為微小的執行緒,基於使用者的行為可以控制它。python一直很優秀,但是python在效能方面的表現很差勁,所以了python設計了協程來改進這部分的設計缺陷。locust對服務端的負載能力很強,所以使用它可以來做服務端的穩定性測試

 

三、在Python的技術棧的體系中,效能測試的⼯具是Locust的測試框架,Locust是⼀種易於編寫,可以編寫測試指令碼 和可以擴充套件的效能測試⼯具,它是基於協程來進⾏設計的,當然也可以說是基於event的事件來進⾏設計的。協程 我們可以簡單的理解為是基於⽤戶態的執行緒,更加專業的話說是微執行緒,基於⽤戶可以控制的⼀種微⼩的執行緒,也 可以叫協程

 

四、下載官網https://locust.io/

 

五、輸入命令pip3 install locust開始下載安裝

 

 

六、locust WEB穩定性測試

1、啟動Java的架包開啟cmd找的下載的目錄路徑,輸入Java -jar app-0.0.1-SNAPSHOT.jar 啟動

 

 2、下載程式碼

 

 

3、輸入 locust -f locustfile.py 命令執行

 

 

4、開啟另外一個控制檯,輸入命令jvisualvm,開啟JVM監控

 

 

5、重新開啟一個控制檯,輸入命令:locust -f locustfile.py 就會啟動locust的程式

 

 

6、開啟網頁

http://localhost:8089

 

 

 

 

下⾯具體針對界⾯的⽂字設定進⾏解釋,具體如下:

• Number of total users to simulate:設定模擬的⽤戶總數

• Spawn rate (users spawned/second):每秒啟動的⽤戶虛擬數

• Host (e.g. http://www.example.com):被測的⽬標伺服器的地址資訊

 

 

 Type:請求型別(也就是請求具體是哪個⽅法)

Name:請求的路徑地址資訊

Requests:當前已完成的請求數量

Fails:當前失敗的數量

Mediam(ms): 響應時間的中位數

90%ile (ms):90%的請求響應時間

Average (ms):平均響應時間

Min (ms):最⼩響應時間

Max (ms):最⼤響應時間

Average size (bytes):平均請求的資料量

Current RPS:每秒中處理請求的數量,也就是RPS

 

 

選單欄具體為:

New test:點選該按鈕可對模擬的總虛擬⽤戶數和每秒啟動的虛擬⽤戶數進⾏編輯;

Statistics:聚合報告

Charts:測試結果變化趨勢的曲線展示圖,分別為每秒完成的請求數(RPS)、響應時間、不同時間的虛擬⽤戶數;

Failures:失敗請求的展示界⾯;

Exceptions:異常請求的展示界⾯;

Download Data:測試資料下載模組, 提供三種類型的CSV格式的下載,分別是:Statistics、responsetime、 exceptions;

 

七、負載測試

1、啟動Java架包開啟cmd找的下載的目錄路徑,輸入Java -jar app-0.0.1-SNAPSHOT.jar 啟動

2、下載程式碼

 

3、輸入 locust -f locustfile2.py 命令執行

4、開啟網頁http://localhost:8089 進行負載測試

 

八、面試題

jmeter與locust的區別:

1、JMeter是100%Java語言開發的,它是基於執行緒的模式向服務端傳送請求

2、Locust是Python語言開發的,它是基於協程的模式

 

你之前有做過服務端穩定性測試嗎?你是怎麼理解它的?

服務端穩定性測試指的是持續高併發的向服務端傳送請求,服務端都能夠處理客戶端傳送的處理,通過這樣的一個模式來驗證服務端它在持續高負載下它的業務處理能力,和系統的整體設計能力。如一碼通,持續72小時連續不停的掃描二維碼,都應該能夠很快速的出健康碼。 2、有做過,如果是使用JMeter,就是無限迴圈,如果是locust,就一直持續的請求,具體多久,我們之前是24小時連續不停的請求