python - 获取每个生成的用户的 Locust IO 信息
问题描述
我工作的公司妥协,在不到 1 秒的时间内提供 99% 的服务响应,在不到 2 秒的时间内提供 99.9% 或他们的响应。如果任何虚拟用户都违反了此规则,我该如何进行 Locust 报告?
我的第一种方法是在我的用户中创建一个方法(从 locust.HttpLocust 继承),该方法将检测此事件何时发生并将其记录在基于用户的日志中。我认为这可行,但如果我有 1000 个用户,这意味着我将有 1000 个不同的日志文件。
第二种方法是创建单个事件日志,但我想这需要我处理异步 IO 处理。我想一定有一个更蟒蛇式的方式。
蝗虫和性能新手在这里。对不起,如果我的问题被误导了。
解决方案
您可以在每个结束时添加持续时间检查,@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 断言 - 完整的用户手册
或者,您可以尝试考虑使用Taurus工具作为包装器运行您的测试。Taurus 具有强大且灵活的通过/失败标准子系统,它可以即时分析结果并返回非零退出状态代码,该代码可用作 shell 脚本或持续集成解决方案的失败指示器。
推荐阅读
- gatling - 如何在加特林中读取字符串响应数组?
- excel - 如果 Word 文档尚未打开,Excel VBA 代码会出错
- kerberos - 使用 Kerberos 身份验证和 Livy(通过 sparkmagic)时,文件路径变得无法访问
- d3.js - 如何继承工具提示的数字/日期格式,而不仅仅是轴?
- python - 像素化图像:"""name_image_matrix [::10,::10]""" 做什么?
- docker - 在 Docker 中注册到另一个容器中的服务器
- java - Android Studio 滑块
- python - 我可以用 Amazon Cognito 替换 django 管理面板登录代码吗?
- bash - 用于查找文件中缺少的数字的 Shell 脚本
- audio - 使用 BSP 库在 stm32f769i-Discovery 上进行录音时出现问题