问题标签 [locust]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1132 浏览

python - 如何通过蝗虫以protobuf格式发送http请求

我是新手locust,我知道它对格式http请求有很好的支持。json

我们想对http apiwithpb格式进行压力测试,但是,如何以by 格式发送http请求(相反,支持格式)。protobuflocustjmeterpb

这和上传文件一样吗?

0 投票
2 回答
950 浏览

locust - 如何用蝗虫模拟加速?

据我所知,Ramp-up 功能已从蝗虫中删除。只是想知道孵化过程是否与加速过程相同或相似?或者无论如何可以模拟这种情况?

0 投票
3 回答
1000 浏览

python - Flask 获取 csrf_token 用于 Locust 负载测试

我想用我的远程服务器实现对蝗虫的负载测试,但我不想禁用 csrf 功能,我怎样才能获得 csrf_token 或通过它

0 投票
2 回答
2893 浏览

python - 用 locust 和 [Errno 111] 测试连接被拒绝

我有 django (1.6) 应用程序,我想用蝗虫测试它。我安装locust==0.7.5pyzmq==16.0.2恢复了很多失败:[Errno 111] Connection refused'下面的更多详细信息

当我使用命令运行应用程序时:locust --host=http://127.0.0.1 我收到以下错误:

我的蝗虫文件:

任何有关如何解决错误的帮助将不胜感激!

0 投票
0 回答
924 浏览

python - locust.io - 如何在每个特定时间运行特定数量的请求

我正在尝试locust.io(用Python编写)。我正在尝试测试尖峰。所以我尝试设置min_waitand max_wait,所以它只会在该范围内运行(每 5 分钟一次):

问题是它每次只运行 1 个请求,尽管我设置了 80 个用户。

找不到每次都创建更多请求的方法。

0 投票
2 回答
536 浏览

python-3.x - 当我在蝗虫中使用“for”时,如何控制流量?

当我在 locust 中使用“for”时,我不知道为什么“req/s”太高了。

在此处输入图像描述

但是,如果我不使用“for”,一切都很好......

在此处输入图像描述

0 投票
1 回答
6025 浏览

python - 如何解释 Locust 的指标?

我在 locust 文档中没有找到有关要模拟的用户数孵化率的详细信息。

这两个参数之间有什么关系?

如果我有 20 个客户端,每个客户端都会向服务器发送 1000 个请求/秒,我应该如何设置这两个参数来测试服务器?

0 投票
1 回答
514 浏览

python - 使用 Locust.io 进行 Windows 身份验证?

我正在尝试使用 Locust.io 对项目进行负载测试。该项目是用 ASP.Net 编写的,并使用 Windows 身份验证。无论如何我可以在我的蝗虫脚本中模拟这个来登录用户吗?

0 投票
1 回答
2013 浏览

python - 在 Locust 对象中设置会话 ID

我正在使用 Python 语言中的 Locust 对象发送 http 请求(发布)。当我在一个 python 文件中使用 Locust 对象发送多个请求时,它可以工作,但是当我在单独的 python 文件中发送每个请求时,它不起作用,因为我收到会话过期消息。我们的要求是为每个请求使用单独的 python 文件,我想在其中读取上一个请求的会话并希望在下一个请求中分配该会话 ID。不知何故,我无法在下面的代码中做。有设置 cookie 的选项,但未在请求标头中设置。

如果您能帮助我解决我的问题,我将不胜感激。

0 投票
0 回答
124 浏览

c++11 - 另一个进程中的安全等待功能

TL;博士

如何在单独的进程中安全地await执行函数(将strint作为参数,不需要任何其他上下文)?

很长的故事

我有aiohtto.web使用Boost.Python包装器进行C++扩展的 Web API,在gunicorn(我计划将其部署在 Heroku 上)下运行,由locust.

关于扩展:它只有一个执行非阻塞操作的函数——接受一个字符串(和一个用于超时管理的整数),用它进行一些计算并返回一个新字符串。对于每个输入字符串,它只有一个可能的输出(超时除外,但在这种情况下,C++Boost.Python 必须引发异常并将其转换为与 Python 兼容的输出)。

简而言之,特定 URL 的处理程序执行以下代码:

executorC++ 扩展模块中的ProcessPoolExecutor实例和func-function在哪里。(在实际项目中,这段代码在类的协程方法中,而且func——classmethod它只执行C++函数并返回结果)

错误捕捉

当一个新请求到达时,我提取它的 POST 数据request.post(),然后将它的数据存储到名为的自定义类的实例中Call(因为我不知道如何以另一种方式命名它)。因此该call对象包含所有输入数据(字符串)、请求接收时间和id请求附带的唯一性。

然后它继续到名为Handler的类(不是aiohttp请求处理程序),将它的输入传递给另一个类的loop.run_in_executor内部方法。但是Handler有一个像中间件一样工作的日志系统——读取每个传入call对象的 id 和接收时间,并用一条消息记录它,告诉你它刚刚开始执行、成功执行或遇到麻烦。此外,Handlertry/except所有错误保存并存​​储在call对象中,以便日志记录中间件知道发生了什么错误,或者返回了什么输出扩展

测试

我有一个单元测试,它只在里面创建了 256 个协程,里面有这段代码,执行器有 256 个工作人员,它运行良好。

但是当用 Locust 进行测试时,就会出现问题。我使用 4 个 Gunicorn worker 和 4 个 executor worker 进行这种测试。有时应用程序刚开始返回错误的输出。

My LocustTaskSet被配置为使用所有可用信息记录每个故障响应:输出字符串、错误字符串、输入字符串(也由应用程序返回)、id。所有模拟请求都是相同的,但id对每个请求都是唯一的。

max_requests将 Gunicorn 的选项设置为100requests时情况会更好,但仍然会出现故障。

有趣的是,有时我可以通过简单地停止和启动 Locust 的测试来触发“错误输出”期间。

我需要 100% 保证我的 Web API 按预期工作。

更新和解决方案

刚刚让我的队友检查 C++ 代码 - 问题出在全局变量中。在某种程度上,这对 256 个并行协程来说不是问题,但对 Gunicorn 来说却是。