python壓測工具Locust

2022-03-01 07:33:14 字數 3252 閱讀 9719

locust作為基於python語言的效能測試框架。

其優點在於他的併發量可以實現單機10倍於loadrunner和jmeter工具。他的工作原理為協程併發,也就是gevent庫。

locust的缺點也顯而易見,他沒有友好的效能監控頁面,沒有任何關聯,引數化,檢查點之類的定義。當然基於python這些都不是問題,如果簡單的使用,用來做壓測是最合適不過了

1、安裝了python,並加入了環境變數:pip intsall locustio

2、pycharm內部直接import locust,如圖:

匯入需要引用的類2​

3class

mytasks(taskset):

4'''

5建立測試任務,需要繼承taskset

6可以新增多個測試任務

7'''8#

每個測試任務,往往會以例項方法的形式呈現9#

同時需要使用task裝飾器來裝飾任務

10@task

11def

one_task(self):

12print("

執行第乙個測試任務")

13 self.client.get("

/") #

client封裝的requests,所以requests的請求方法都能呼叫,括號內為子路徑,與class runtasks(httplocust)中的host拼接,也可以直接寫成self.clint.get(""),在class runtasks(httplocust)就不需要指host了14​

17建立執行測試類,需要繼承httplocust父類

18'''

19 task_set = mytasks #

指定測試任務類,使用task_set覆蓋父類屬性

20 min_wait = 2000 #

模擬負載的任務之間執行時的最小等待時間,單位為毫秒

21 max_wait = 5000 #

模擬負載的任務之間執行時的最大等待時間,單位為毫秒

22 host = "

"#進行壓測的地

可以在cmd中啟動,也可以直接在pycharm的控制台中啟動:locust -f locusttest2.py --web-host=127.0.0.1

-f 後面跟的是需要啟動的.py檔案,--web-host=127.0.0.1 是我們需要的前端頁面展示的地方

啟動之後可以在在瀏覽器中輸入127.0.0.1:8089訪問頁面

統計頁面

圖圖表頁面:

第乙個為:rps分別為每秒完成的請求數

第二個為:響應時間

第三個為:不同時間的虛擬數

失敗請求頁面

異常請求展示頁面

'''建立後台管理站點壓測類,需要繼承taskset

可以新增多個任務

'''def login(self): #

登入方法

'''登入例項方法

這裡先截包,找到登入介面,由於密碼都進行的js加密處理,所已我們直接正確的使用者名稱密碼加密的結果傳入。post的引數可以直接使用字典的形式傳入

def logout(self): #

退出登入方法

'''退出例項方法

子系統的退出介面

defon_start(self):

'''當任何乙個task排程執行前,on_start例項方法會被呼叫

先登入:return:

'''self.login()

defon_stop(self):

'''當任何乙個task排程執行之後,on_stop例項方法會被呼叫

:return:

'''self.logout()

​ @task

#task裝飾器來裝飾任務

defadmin_index(self):

'''對後台主頁進行壓測

'''建立執行類

'''task_set =adminloadtest

min_wait = 200 #

模擬負載的任務之間執行時的最小等待時間,單位為毫秒

max_wait = 500 #

模擬負載的任務之間執行時的最大等待時間,單位為毫秒

#啟動:locust -f test_load.py --web-host=127.0.0.1 --host=172.25.16.7

安裝這樣的引數,我們執行的動作為:一共1000個使用者,每個使用者在2~5秒內進行登入,訪問首頁,退出3個動作。使用者數已沒5秒乙個的方式遞增,我們來看看結果:

總覽頁面

圖表頁面:

針對這3個動作,子系統每秒能完成的請求數在150左右

響應時間隨著使用者量增加,持續上公升

沒有失敗和異常的請求

locust用來做壓測工具還是挺不錯了,因為它單機能模擬併發量確實是太高了(採用的是協程的方式模擬併發),初次之外,locust還支援分布式,這樣併發量就進一步提公升了。由於locust的缺點也顯而易見,他沒有友好的效能監控頁面,沒有任何關聯,引數化,檢查點之類的定義,所以locust單獨不適合做完整的效能測試,當然如果能結合python的其他的庫,也應該可以解決。有興趣的小夥伴可以研究研究...

web版本 開源壓測工具 免費壓測工具

很多的web應用在搭建伺服器完成後,為了讓搭建的服務能夠滿足使用者的訪問需求,通常需要測試自己應用的併發連線能力。需要使用一些壓測工具,本文介紹一些免費的開源的壓測工具,可以用於簡單的壓力測試 實驗均在linux系統下 1.ab工具 ab的全稱是apache bench,是apache自帶的網路壓力...

壓測工具(二)

安裝yum y install httpd tools基本用法使用方法 ab 可選的引數選項 需要進行壓測的url n 在測試會話中所執行的請求個數。預設時,僅執行乙個請求 c 一次產生的請求個數 t 測試所進行的最大秒數。其最大隱含值時 n 50000,它可以使對伺服器的測試限制在乙個固定的總時間...

ab壓測工具

root localhost yum install y httpd tools 安裝ab工具 root localhost ab c 10 n 1000 指定併發請求數為10,總請求數為1000,對進行壓力測試 this is apachebench,version 2.3 revision 14...