python - Locust 负载测试 - 将孵化率从几秒更改为几分钟?

标签 python load performance-testing locust

我想模拟尖峰流量,例如:

  • 在前 5 分钟内只有 50 个用户(在 T0 时即时孵化 50 个)
  • 然后从第 5 分钟到第 10 分钟,我们有 100 个用户(T+5 即时孵化 +50)
  • 然后 150(T+10 时即时孵化 +50)
  • 等等

是否可以创建相同数量的用户,而不是每秒创建一次,改为每 xx 分钟创建一次?

最佳答案

没有这样的内置功能(https://github.com/locustio/locust/issues/1353 如果实现的话可能会解决这个问题)

一种解决方法是立即生成所有用户(使用大约 100/s 的生成速率),并让他们休眠直到运行时间:

import time
start = time.time()

class User1(HttpUser):
    @task
    def mytask(self):
        # do actual task

class User2(HttpUser):
    @task
    def mytask(self):
        while time.time() - start < 300:
            time.sleep(1)
        # do actual task

class User3(HttpUser):
    @task
    def mytask(self):
        while time.time() - start < 600:
            time.sleep(1)
        # do actual task

...

你或许可以做一些聪明的事情并将其全部放在一个类中,但我会把它留作练习 :)

关于python - Locust 负载测试 - 将孵化率从几秒更改为几分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62872079/

相关文章:

python - Asyncio 和 aiohttp 将所有 url 路径路由到处理程序

python - 生成 JSON 输出而不是 key=value CSV

jquery - Shadowbox 加载旧的 href 而不是新的 href

c++ - 为什么 std::chrono 说我的函数执行时间为零纳秒?

java - 与 JMeter 相比,Blazemeter 结果是否正确?

python - 织物与预期

python - 17 分钟后 SQLAlchemy 提交错误

javascript - 使用jQuery捕获append()-ed元素的元素 "load"事件?

asp.net - 如何在 LoadAndPerformanceTestProject 的 LoadTest 中设置测试 URL - Basic

javascript - 高级 JavaScript 数组串联 - 性能