locust做並發測試實戰


一、安裝

 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官網

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM