locust壓測

爱编程_喵發表於2024-05-06

目錄
  • locust
    • 1.依賴
    • 2. 例項
      • 2.1 壓測方式
      • 2.2 locust服務端
      • 2.3 待壓測介面服務
    • 3. 參考文件

locust

1.依賴

pip install locust



2. 例項

2.1 壓測方式

1. 壓測方式
1.1 前臺自編輯方式
	修改檔名為locustfile.py 並在控制檯使用locust啟動前臺服務 使用者自定義壓測引數並開啟壓測
	
1.2 控制檯直接啟動並進行壓測
	locust --headless -u 10 -r 1 -H http://localhost:5001  -t 10  -f demo 
	--headless: 無前臺介面(預設帶引數  --autostart)
	-u: 併發數
	-r: 延遲時間(s)
	-H: 壓測主機資訊
	-t: 壓測持續時間(s)
	-f: 指定壓測的檔名(預設是locustfile)
	
2. 擴充套件
2.1 調整前臺啟動方式的IP和埠繫結
	--web-host: 預設為"*"
	-P或者--web-port: 預設8089
	
	
PS: locust 相關命令引數參考:https://docs.locust.io/en/stable/configuration.html#configuration

2.2 locust服務端

# -*- coding:utf-8 -*-
"""
locustfile.py
locust服務端啟動 透過訪問http://localhost:8089前臺 介面形式進行介面壓測
"""
from locust import HttpUser, task


class HelloWorldUser(HttpUser):
    @task
    def hello_world(self):
        # 實際測試的路由(可多個) 預設自動熱重啟
        self.client.get("/flaskTest")
        # self.client.get("/flaskTest2")

2.3 待壓測介面服務

# -*- coding:utf-8 -*-
import datetime


from flask import Flask

app = Flask(__name__)


@app.route("/flaskTest")
def test():
    print(datetime.datetime.now().strftime("%Y%m%d_%H:%M:%S"))
    return "OK"


if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5001, debug=True)


3. 參考文件

[1] https://pypi.org/project/locust/

[2] https://docs.locust.io/en/stable/installation.html

相關文章