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

 

posted @   shog808  阅读(2486)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示