性能測試之locust、python安裝


1、安裝locust

1.1搭建python環境

(1)下載python應用程序;

 

 (2)在本地儲存盤中新創建一個python3文件夾;

 

 

 

(3)點擊下載好的應用程序,以管理員身份運行;

(4)點擊勾選Add Python 3.9;

 

 

 (5)然后點擊Customize installa進入Optional Features,然后點擊Next;

 

 

 

 

(6)點擊Next進入Advanced Options,然后點擊Browse選擇python的安裝位置,選擇開始創建的python3文件夾,然后點擊install 進行安裝;

 

 (7)安裝完成后,打開控制台輸入python,出現如下圖所示,代表安裝成功;

 

 1.2安裝locust

打開控制台,輸入pip3 install locust安裝locust,結果如下圖表示安裝成功;

 

 *如果出現紅色,表示網絡超時,重新安裝就可以。

2、進程、線程與協程

操作系統的最小運行單位是進程,而進程最小運行單位是線程,是基於操作系統的;協程是python獨有的微小的線程,是基於用戶行為的,協程在單機模式下,對服務的破環能力非常強。

3、用locust做性能測試

*locust適合做服務器的負載測試和穩定性測試(壓力測試),locust使用的是jmx協議。

3.1locust做性能測試步驟

(1)創建locustfile.py文件,將其放在本地,locustfile.py文件內容如下:

import time

from locust import HttpUser,task,between

class QuickStartUser(HttpUser):

     wait_time = between(1,2.5)

     @task
     def index(self):
                     r=self.client.get('/login')
                     assert r.status_code==200

*@task里面,我們使用裝飾器定義了微線程的用戶請求,也就是模擬用戶請求,路由地址為/login的接口信息。wait_time是模擬每個用戶耗時是在1至2.5秒之間。

 

 

 

 

(2)打開控制台,進入儲存locustfile.py文件的目錄下,運行locust -f locustfile.py;

 

 (3)在瀏覽器輸入網址http://0.0.0.0:8089http://localhost:8089/),進入locust官網,頁面如下:

 

 下面具體針對界面的文字設置進行解釋,具體如下: Number of total users to simulate:設置模擬的用戶總數; Spawn rate (users spawned/second):每秒啟動的用戶虛擬數; Host (e.g. http://www.example.com):被測的目標服務器的地址信息。

(4)設置相關數值,注意模擬的用戶總數和request請求的數量沒有直接關系。點擊start就可以開始測試;

 

 

3.2locust頁面詳述

3.2.1菜單欄

 

 (1)Edit:點擊該按鈕可對正在運行的性能測試的總虛擬用戶數和每秒啟動的虛擬用戶數進行編輯;

(2)Statistics:聚合報告;

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

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

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

(6)Download Data:測試數據下載模塊, 提供三種類型的CSV格式的下載,分別是:Statistics、failures、exceptions,以及Report的下載。

(7)停止測試:就是停止locust的測試;

(8)New test:停止運行后,點擊該按鈕可以重新創建總虛擬用戶數和每秒啟動的虛擬用戶數以及被測服務器地址。

 

 

3.2.2聚合報告

 

(1)Type:請求類型(也就是請求具體是那種請求⽅法);

(2)Name:顯示的是請求的路徑地址信息;

(3)Requests:表示當前已完成的請求數量;

(4)Fails:表示當前失敗的請求數量;

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

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

(6)Average (ms):平均響應時間;

(7)Min (ms):最⼩響應時間;

(8)Max (ms):最⼤響應時間;

(9)Average size (bytes):平均請求的數據量;

(10)Current RPS:每秒種處理請求的數量,也就是RPS。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM