一、Locust簡介
1.Locust是一個易於使用的分佈式用戶負載測試工具。它是用於負載測試網站(或其他系統)計算出一個系統能處理多少併發用戶。
2.特定
①用普通的Python編寫用戶測試場景
②分佈式和可擴展-支持數十萬用戶
③基於Web的UI
④可以測試任何系統
⑤可破解
二、安裝Locust
1.若是您使用的是python2.7,請直接運行以下命令:
python -m pip install locustio
2.對於python3,請運行:
python3 -m pip install locustio
3.如果您想要一個新版本,可以使用pip直接從Git存儲庫安裝。例如,使用Python 3到主分支安裝:
python3 -m pip install -e git://github.com/locustio/locust.git@master#egg=locustio
4.一旦安裝了Locust,您的shell中就應該有Locust命令了。(如果你不使用virtualenv您應該確保python腳本目錄在您的系統路徑上)要查看可用選項,請運行:
lucust --help
運行截圖如下:
5.目前Locust支持Python 2.7, 3.5, 3.6, 3.7, 3.8.等版本。
三、運行Locust
1.話不多說先上代碼:請將以下代碼保存爲文件:locust_1.py
即可運行。
# coding=utf-8
import requests
from locust import HttpLocust,TaskSet,task,between
# 禁用安全請求警告
requests.packages.urllib3.disable_warnings()
class MyCSDNBlogs(TaskSet):
@task(1) # 訪問我的博客首頁
def get_blog(self):
# 定義請求頭
header = {"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0Name"}
req = self.client.get("/Rico_Rico_", headers=header, verify=False)
if req.status_code == 200:
print("請求成功!")
else:
print("請求失敗!")
class websitUser(HttpLocust):
task_set = MyCSDNBlogs
wait_time = between(3, 6)
if __name__ == "__main__":
import os
os.system("locust -f locust_1.py --host=https://blog.csdn.net")
2.若是有的同學木有使用集成編譯環境如PyCharm,而使用CMD窗口,需將目錄切換到locust_1.py
所在的目錄後,使用命令即可運行:
python -f loust_1.py --host=https://blog.csdn.net
3.使用以上方式成功運行Locust後,打開你的瀏覽器並且輸入網址:http://127.0.0.1:8089
,你將看到這樣的畫面:
其中Number of users to simulate
指要模擬的用戶數,而Hatch rate (users spawned/second)
指的是同一請求的最大次數(併發),Host
指我們需要測試的網址了。
4.上幾個運行狀態的截圖:
如上圖,當前參數情況下,平均每秒56.9個請求數,錯誤率3%
四、總結
好了,本期分享到這裏就結束了,能力有限難免有遺漏或者不足,請看官們批評指正,並在評論中留言,謝謝大家~