性能测试——压测工具locust——脚本初步编写

User Class

一个用户类代表一个用户(如果你愿意,也可以是一群蝗虫)。Locust 将为正在模拟的每个用户生成一个 User 类的实例。用户类可以定义一些通用属性。

on_start 和 on_stop 方法


User和TaskSets可以声明一个on_start和on_stop方法,

User:在该用户开始运行时调用on_start方法,该用户停止运行时调用on_stop方法

TaskSets:对于TaskSet,on_start方法将在方法在模拟用户开始执行该TaskSet时调用,并在模拟用户停止执行该TaskSet 时调用(interruptp()被调用,或用户被杀死)。

@task装饰器

@task可以看做是一个任务,博客参考:https://blog.csdn.net/m0_70618214/article/details/131307986

标签解释

  • Type:请求类型,即接口的请求方法
  • Name:请求路径
  • Requests:当前已完成的请求数量
  • Fails:当前失败的数量
  • Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒
  • 90%ile:90%响应时间,单位为毫秒
  • 99%ile:99%响应时间,单位为毫秒
  • Average:平均响应时间,单位为毫秒
  • Min:最小响应时间,单位为毫秒
  • Max:最大响应时间,单位为毫秒
  • Average Size:平均响应数据大小,单位为字节;
  • Current RPS:当前每秒请求数量
  • Current Failures/s:每秒失败数量

 每秒请求数 ( RPS )

weight属性

wait_time属性

Locust任务等待的几种方式:

constant(2)
任务执行完毕等待2秒开始下一任务
between(1,7)
任务执行完毕等待1-7秒(中间随机取值)开始下一任务
constant_pacing(6)
从任务启动开始计算时间,若任务耗时超过该时间,则任务结束后立即执行下一任务;若任务耗时不超过该时间,则等待达到该时间后执行下一任务。
constant_throughput(2)
constant_throughput(2)同constant_pacing(1/2), 表示每秒最多执行2次。 
def constant_throughput(task_runs_per_second):
    return constant_pacing(1 / task_runs_per_second)
用户: locust中constant_throughput()这个代表什么含义,请举例下
Kimi: 在Locust中,`constant_throughput()`是一个用于控制用户行为的函数,它允许你以一个恒定的速率执行任务。这个速率是指每秒执行的任务数量,而不是每秒的请求数,因此它可以帮助模拟一个稳定的用户行为模式。

使用`constant_throughput()`时,你需要指定一个任务的执行速率,Locust会尝试以这个速率执行任务,即使这意味着它需要在某些情况下“减速”以匹配给定的速率。

下面是一个使用`constant_throughput()`的例子:

```python
from locust import constant_throughput, HttpUser, TaskSet, task

class MyTaskSet(TaskSet):
    @task
    def my_task(self):
        # 这里是你的请求逻辑
        self.client.get("/my_endpoint")

class MyUser(HttpUser):
    tasks = [MyTaskSet]
    # 设置一个常量吞吐量,每秒执行一次my_task任务
    constant_throughput("my_task", 1)
```

在这个例子中,`MyUser`类中的`constant_throughput("my_task", 1)`表示每个用户将每秒执行一次`my_task`任务。Locust会根据这个设定调整每个用户执行任务的间隔,以确保达到每秒一次的恒定速率。

需要注意的是,使用`constant_throughput()`时,它只影响单个任务的执行速率,并不会影响整个用户实例的请求速率。如果你需要控制整个用户实例的请求速率,可能需要使用其他的策略或者组合使用多个任务和权重。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值