首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误分组是Locust

错误分组是Locust
EN

Stack Overflow用户
提问于 2020-07-09 11:59:47
回答 1查看 43关注 0票数 0

我正在尝试运行一个大型测试,它通常有很多错误,但似乎无论是否提供安全名称,错误都是单独报告的。

What I am getting

这导致了很难分析的巨大错误列表,而且我怀疑这会消耗大量RAM,进程最终会被杀死。

EN

回答 1

Stack Overflow用户

发布于 2020-08-22 02:31:30

问题是,Locust从你的请求中返回的错误不是一个正常的状态代码。目前,它检查状态代码以确保它在这个列表valid_response_codes = frozenset([200, 206, 301, 302, 303, 307])中。如果不是,则返回BadStatusCode(url, code=status_code)。看起来您的URL是唯一的,并且您已经在编辑在UI中报告的URL。对于错误,你必须做一些类似的事情,或者如果你已经这样做了,你需要扩大范围。

在我的使用中,我也有许多独特的URL。为了防止这种事情发生,我捕捉到的响应如下:

代码语言:javascript
复制
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、响应码和消息转换为非唯一的,然后手动触发失败和成功events

代码语言:javascript
复制
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响应中获得相同的数据(而且我相信会更干净)。在本例中,在您看到BadStatus消息的UI中将显示except_string

如果您不想手动触发事件,您仍然可以捕获响应,但您可以覆盖响应的属性并让其继续正常运行,或者您可以使用所需的任何字符串调用response.failure(failure_string)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62807204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档