【性能测试】3_Locust _locust实现混合业务实现

文章目录

一、执行混合任务的比重

1、举例:混合业务场景。500用户并发访问

  • 首页:150
  • 搜索商品:200
  • 注册:20
  • 登录:80
  • 下单:50

2、语法:

在@task后添加( )写入需要设定的比重值即可。

python 复制代码
from locust import TaskSet, HttpLocust, task
"""
locust比重:500用户并发送
- 首页:150
- 搜索商品:200
- 注册:20
- 登录:80
- 下单:50
"""
# 1.定义 任务集 和 任务
class TaskClass(TaskSet):  # 要继承TaskSet类, TaskClass表示一个任务集
    """"定义任务"""

    # 访问首页
    @task(150)
    def index(self):
        result = self.client.get("/?=index")     # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)    # 打印结果

    # 搜索
    @task(200)
    def search(self):
        result = self.client.get("/?=search")  # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)  # 打印结果

    # 注册
    @task(20)
    def register(self):
        result = self.client.get("/?=register")  # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)  # 打印结果

    # 登录
    @task(80)
    def login(self):
        result = self.client.get("/?=login")  # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)  # 打印结果

    # 下单
    @task(50)
    def order(self):
        result = self.client.get("/?=order")  # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)  # 打印结果


# 2.#定义用户类
class User(HttpLocust):
    # 绑定任务
    task_set = TaskClass   # task_set 属性名不能变; 注意:TaskClass 后,没有 ()

    # 设置 用户间 最小延迟时间 - 单位 ms
    min_wait = 1000

    # 设置 用户间 最大延迟时间
    max_wait = 3000

    # 指定 主机地址
    host = "https://www.baidu.com"

二、特殊方法

  • on_start: 前置方法(前置任务),在每个任务执行之前,被自动调用一次。似于setup
  • on_stop: 后置方法(后置任务), 在每个任务执行结束之后,自动被调用一次。类似于teardown
python 复制代码
from locust import TaskSet, HttpLocust, task

# 1.定义 任务集 和 任务
class TaskClass(TaskSet):  # TaskClass 表示任务集
    # 不需要添加装饰器 @task
    def on_start(self):
        print("------任务开始了!")
    # 不需要添加装饰器 @task
    def on_stop(self):
        print("======任务结束了!")

    """"定义任务"""
    # 访问首页-任务(会被自动调用)
    @task
    def index(self):
        result = self.client.get("/")     # 此行代码相当于requests.Session().get()
        # print("响应结果:", result.text)    # 打印结果
#

# 2.定义 用户类
class User(HttpLocust):
    # 绑定任务
    task_set = TaskClass   # task_set 属性名不能变; 注意:TaskClass 后,没有 ()

    # 设置 用户间 最小延迟时间 - 单位 ms
    min_wait = 1000

    # 设置 用户间 最大延迟时间
    max_wait = 3000

    # 指定 主机地址
    host = "https://www.baidu.com"
相关推荐
bj_bluewei_tech19 分钟前
拯救者玩游戏掉帧卡顿,温度不高是什么原因?
网络·电脑·笔记本电脑·玩游戏
pt104324 分钟前
Cisco设备网络安全系列-19:网络安全事件驱动与调整
运维·网络
信看28 分钟前
【无标题】
网络
Escalating_xu28 分钟前
【Linux 网络编程】ARP 的具体过程与 ARP 欺骗:一条 IP → MAC 映射,怎样改变数据的去向?
linux·网络·tcp/ip
坚定的共产主义生产设备永不宕机1 小时前
服务器从裸机开始搭建ESXI虚拟机
linux·服务器·网络
2301_780789661 小时前
智能汽车的“软肋”:车载系统漏洞分析与安全防护框架初探
网络·安全·车载系统·汽车·ddos
Escalating_xu2 小时前
【Linux 网络编程】IP 分片与重组:3000 字节的数据报,怎样拆开又拼回来?
linux·网络·tcp/ip
风娜2 小时前
【Linux网络】UDP 服务器怎么写?从 socket、bind 到 recvfrom/sendto,手写完整回显服务器
linux·服务器·网络
从琳开始9892 小时前
从Socket到UDP回显服务器:Java网络编程完整指南
java·网络·网络协议·udp·java-ee
Gauss松鼠会2 小时前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb