Locust高并發(fā)接口測試框架

一、環(huán)境配置

python 3.7
Locust 1.1.1
MacOS

二、為什么需要使用locust

公司面對大量用戶時,有時候需要對某些單接口/組合接口壓測;但是單臺機器的性能又無法滿足大并發(fā)量,怎么辦?一開始考慮用非界面版本的jmeter去執(zhí)行任務,但是macOS對jmeter5.3不兼容(好卡,不知道是不是個人電腦問題),最后決定使用Python的高并發(fā)框架Locust。
下面說說當前接口并發(fā)工具中,各自的優(yōu)缺點:


image.png

**圖片來自網(wǎng)絡

三、基本使用

from locust import HttpUser, task

class Quickstart(HttpUser):
    min_wait = 100  # 最小等待時間(ms),模擬用戶在執(zhí)行每個任務之間等待的最小時間
    max_wait = 500  # 最大等待時長(ms),模擬用戶在執(zhí)行每個任務之間等待的最大時長
    host = 'https://baidu.com'  # 訪問的域名

    def on_start(self):
        #開始任務
        print("start working")

    # 任務target,用@task標記    
    @task
    def mytask(self):
        self.client.get('/')

參數(shù)解釋:
1.使用@task裝飾的方法為一個事務,方法的參數(shù)@task(2)用于指定該行為的執(zhí)行權(quán)重,參數(shù)越大每次被用戶執(zhí)行的概率越高,默認為1(即task(2)是@task(1)執(zhí)行次數(shù)的2倍)
2.on_start():每個用戶執(zhí)行測試事務之前執(zhí)行一次,用于做初始化的工作

四、啟動Locust

命令窗口執(zhí)行:locust -f 待測腳本
瀏覽器打開:locust:8089 # 8089是默認端口

image.png

  • Number of users to simulate :設置模擬用戶數(shù)
  • Hatch rate(users spawned/second) :每秒產(chǎn)生(啟動)的虛擬用戶數(shù)
  • Locust是逐漸提高并發(fā)數(shù)目,來作持續(xù)性壓測的工具(即圖中的每秒增加1個用戶,增加9次后達10個用戶并發(fā),并以10個用戶持續(xù)壓測);點擊Stop來停止運行;點擊New test修改并發(fā)數(shù)

五、分布式壓測初嘗

執(zhí)行方法比較簡單,但務必注意??Locust的版本主、從機是否一致

  • 主機(控制機),執(zhí)行命令locust -f 待測腳本 --master
  • 從機(負載器),執(zhí)行命令locust -f 待測腳本 --worker --master-host=主機IP地址
  • 主機打開Locust網(wǎng)站,會發(fā)現(xiàn)右上角會多了個worker的字段,點擊就可以查看當前從機的信息
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容