一、安裝
1.安裝 python3
locust是基於 python3的,根據你的系統(mac、window、Linux)安裝就行。
mac參考 mac安裝python3
驗證 :python --version
2.安裝locust
locust是python3的一個外部庫
命令:pip3 install locust
驗證:locust -V
二、使用
1.編寫python腳本
給兩個示例:
get請求
from locust import task, between from locust.contrib.fasthttp import FastHttpUser, FastResponse class MinApp(FastHttpUser): wait_time = between(1, 2) host = "https://localhost:10001" ''' 1.banner - get請求無參數 ''' @task def sel_banners(self): response = self.client.get("/banners/list") if response.status_code != 200: print("error content:", response.text) ''' 2.查詢商品 -get請求,問號傳參數 ''' @task(2) def sel_item(self): list1 = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] for itemId in list1: response = self.client.get(f"/items/findItem?itemId={itemId}") if response.status_code != 200: print("error content:", response.text) else: print(response.text)
post請求,body傳參數
from locust import task, between from locust.contrib.fasthttp import FastHttpUser, FastResponse class ShellCard(FastHttpUser): wait_time = between(1, 5) host = "http://localhost:8201/shelldataservice/openApi/service"''' 1.查詢卡余額 ''' @task(2) def sel_balance(self): header = { "Content-Type": "application/json", "clientId": "gysitzes2h5Dc", "sign": "DE34DF43138E541FAD8BB9D7F7002139" } payload = { "cardCode": "733637631082057728", "panCode": "82057728" } response = self.client.post("/selBalance", data=None, json=payload, headers=header) if response.status_code != 200: print("error content:", response.text)
2.運行腳本
locust -f minApp.py
注:通過參數 -f 指定腳本文件路徑
3.訪問 locust UI界面
地址:localhost:8089
4.模擬用戶訪問
charts:
statistics:
三、總結
1.Locust是一款易於使用的分布式負載測試工具,完全基於事件,即一個locust節點也可以在一個進程中支持數千並發用戶;
不需要編寫笨重的UI或者臃腫的XML代碼,基於協程而不是回調,腳本編寫簡單易讀
2.更多信息參考官網 : locust官網