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...