获取每个生成的用户的蝗虫IO信息

时间:2018-07-16 16:45:24

标签: python performance-testing locust

我致力于折衷的公司在不到1秒的时间内提供了99%的服务响应,而在不到2秒的时间内提供了99.9%的服务响应。 如果任何虚拟用户都违反了此规则,如何报告蝗虫?

  • 我的第一种方法是在用户中创建一个方法(继承 来自locust.HttpLocust),它将检测何时发生此事件,以及 将其记录在基于用户的日志中。我认为这会工作,但是如果我有 1000个用户,这意味着我将有1000个不同的日志文件。

  • 第二种方法是创建单个事件日志,但是我想 那将需要我处理异步IO处理。我猜 必须有更多的python风格的方式。

这里是蝗虫和性能新手。抱歉,如果我的问题被误导了。

1 个答案:

答案 0 :(得分:0)

您可以在每个@task的末尾添加持续时间检查,例如:

@task
   def service_request(self):
       r = self.client.get("/your/service/path")
       assert r.elapsed < datetime.timedelta(seconds = 1), "Request took more than 1 second"

这样,您将获得有关单个HTTP请求级别的报告,其中涉及哪些请求成功以及哪种工具> 1秒。

更多信息:Locust Assertions - A Complete User Manual


或者,您可以尝试考虑使用Taurus工具作为包装运行测试。 Taurus具有强大而灵活的Pass/Fail Criteria子系统,该子系统可以即时分析结果并返回非零的exit status code,它可以用作Shell脚本或持续集成解决方案失败的指标。