安裝
pip install locustio
使用
from locust import HttpLocust, TaskSet, task
class GetData(TaskSet):
# 用戶執(zhí)行task前調(diào)用
def on_start(self):
pass
# 用戶執(zhí)行完task后調(diào)用
def on_stop(self):
pass
@task
def get_file(self):
# 頭部
header = {'_dubbo_token': 'http_token', '_method_name': 'get'}
# 參數(shù)
data = {'role': 'user','bizGetBean': 'case'}
# 發(fā)起請求
response = self.client.post('/user', data=data, headers=header)
class UserImitate(HttpLocust):
# 域名/IP
host = 'http://example.com'
# 設(shè)置task
task_set = GetData
# 指定在執(zhí)行任務(wù)(min_wait和max_wait)和其他用戶行為之間的最小和最大等待時間(以毫秒為單位—每個模擬用戶)
min_wait = 5000
max_wait = 9000
運行
控制臺啟動
locust -f 腳本路徑 -h 域名
# --no-web 不使用web頁面
# -c 設(shè)置虛擬用戶數(shù)
# -r 設(shè)置每秒啟動虛擬用戶數(shù)
# -t 設(shè)置設(shè)置運行時間
打開瀏覽器http:\localhost:8089
img
- 輸入模擬用戶數(shù)
- 每秒產(chǎn)生(啟動)的用戶數(shù)
分析結(jié)果
img
Type: 請求的類型乱凿,例如GET/POST碴倾。
Name:請求的路徑贷笛。
request:當(dāng)前請求的數(shù)量。
fails:當(dāng)前請求失敗的數(shù)量译仗。
Median:中間值幢踏,單位毫秒脑题,一半的服務(wù)器響應(yīng)時間低于該值,而另一半高于該值屏轰。
Average:平均值颊郎,單位毫秒,所有請求的平均響應(yīng)時間亭枷。
Min:請求的最小服務(wù)器響應(yīng)時間袭艺,單位毫秒。
Max:請求的最大服務(wù)器響應(yīng)時間叨粘,單位毫秒猾编。
Content Size:單個請求的大小瘤睹,單位字節(jié)。
reqs/sec:是每秒鐘請求的個數(shù)答倡。