locust - 错误分组是蝗虫
问题描述
我正在尝试运行一个大型测试,该测试通常有很多错误,但似乎这些错误是单独报告的,而与提供安全名称无关。
这导致了难以分析的巨大错误列表,而且我怀疑这会占用大量 RAM,并且该进程最终会被杀死。
解决方案
问题是蝗虫从您的请求中返回的错误不是正常的状态代码。目前,它会检查状态码以确保它在此列表中valid_response_codes = frozenset([200, 206, 301, 302, 303, 307])
。如果不是,则返回BadStatusCode(url, code=status_code)
. 看起来您的 URL 是唯一的,并且您已经在编辑 UI 中报告的 URL。您必须对错误执行类似的操作,或者如果您已经这样做了,则需要扩大范围。
在我的使用中,我也有许多独特的 URL。为了防止这种事情发生,我捕捉到这样的响应:
with fast_http_session.request(method, url, catch_response=True, stream=False, **kwargs) as response:
…
# Code to check and report response
…
response._manual_result = False
return response
然后在我的代码中检查和报告响应,我按摩 URL 和响应代码和消息,使它们不唯一,然后手动触发失败和成功事件:
env.events.request_failure.fire(request_type=response.locust_request_meta["method"], name=response.locust_request_meta["name"], exception=except_string, response_time=response.locust_request_meta["response_time"], response_length=response.locust_request_meta["content_size"])
我正在使用 FastHttpSession ,它需要这些locust_request_meta
东西,但如果你使用它,你可以从 HttpSession 响应中获得相同的数据(我相信更干净)。在这种情况下,except_string
将显示在您看到BadStatus
消息的 UI 中。
如果您不想手动触发事件,您仍然会捕获响应,但您可以覆盖响应的属性并让它正常继续,或者您可以response.failure(failure_string)
使用您想要的任何字符串调用。
推荐阅读
- crystal-reports - 水晶报表 - 报表格式
- apache-kafka - 是什么导致 Node Kafka Streams 出现此间歇性问题?
- java - 在 Google Dataflow 中将失败的原始对象插入 GBQ
- docker - 如何在构建时将代码放入 docker 映像
- reactjs - 运行 React App“关于 webpack”时出错
- reactjs - 提交后表单未重置-react js
- mule - Mule 4 中的 ForEach 聚合
- html - flexbox 中的 Flexbox 不适用于省略号文本溢出
- spring-boot - 在 SpringBoot 集成测试中使用 TestContainers 填充数据库
- android - Android Kotlin 添加复选框 onclicklisener