问题标签 [yandex-tank]

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 回答
868 浏览

load-testing - Yandex-tank 将 cookie 和 Host 标头添加到来自访问日志的请求中

我有一个带有 cookie 的 access.log nginx:

99.20.231.22 www.carite.com - [01/Dec/2015:03:00:10 -0600] "GET /?mode=_ajax&_imod[]=i159330&make=Mercedes-Benz&_=1448960297171 HTTP/1.1" 200 1182 "http://www.carite.com/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1" "PHPSESSID=ebg5n89m9pc1iamekii1qra5k0; chooseStoreNotificationShown=1; dfa_visit=1448960180633603603; dfa_visitor=1448960180633796491; mod-compare-box=%7B%22vehicles%22%3A%7B%22v11279294%22%3A%7B%22vuid%22%3A%2211279294%22%2C%22isCompared%22%3Afalse%7D%7D%2C%22compareAll%22%3Atrue%2C%22cookieLifeTime%22%3A30%2C%22cookiePath%22%3A%22%5C%2F%22%7D; _ga=GA1.2.10339867.1448960182; _gali=make; _gat_a1=1; _gat_a2=1; _gat_a3=1; _gat_a4=1; usy46gabsosd=collserve__-2_1448960382693_8786" 80 0.295

我可以指定 Yandex-tank 从访问日志中获取 cookie 并将其添加到每个 yandex-tank 请求中吗?

我还需要从访问日志中获取标题“主机:”,而不是load.ini像这样指定它: headers = [Host: www.carite.com]

0 投票
0 回答
385 浏览

load-testing - yandex-tank-api-client 示例不起作用

我不知道yandex-tank-api-client示例是如何工作的。我在tank-example.py中进行了以下更正:已替换(否则错误)

其中f - 是函数:

我已经用我的文件替换了示例的 load.yaml 文件:

其中load.ini是:

在我在localhost上运行yandex-tank-api-server并且tank-example.py 脚本测试开始后,但它无法离开配置阶段:

tank.log文件以行结尾(您可以在此处完整tank.log):

我想了解为什么 PID 不存在。示例是否有错误?

0 投票
1 回答
618 浏览

load-testing - Yandex 水箱不工作

再会。

当我尝试运行 yandex-tank 测试时,我在控制台中收到下一个文本:

回溯(最后一次调用):文件“/usr/bin/yandex-tank”,第 5 行,来自 pkg_resources import load_entry_point ImportError:没有名为 pkg_resources 的模块

Yandex-tank 安装在 vagrant VM Ubuntu 12.04 LTS 上

load.ini 文件

请求文件

使用yandex-tank post.txt在控制台中启动坦克

我做错了什么?

0 投票
1 回答
51 浏览

load-testing - tank.log 增长直到耗尽所有可用空间

我使用 yandex-tank 在 24 小时内每 10 秒生成一个负载 1 个帖子。但是 yandex-tank 在运行大约 16 小时后失败了,因为 tank.log 消耗了所有可用空间。就我而言,它增加到 37Gb。

我的加载.ini:

我的 ammo.txt 包含 10 个类似的帖子请求:

命令行:

似乎重复记录“统计缓存时间戳:”所消耗的空间,例如

在文件的开头,该记录由 1 个时间戳组成。但最后一个可用的“统计缓存时间戳:”包含 54212 个时间戳!文件中总共有超过 30 亿个时间戳!

有没有办法抑制/关闭此日志记录?

0 投票
1 回答
250 浏览

load-testing - 使用 yandex.tank 加载测试 html 和嵌入的对象

几天来我一直在使用 yandex.tank 进行负载测试

我以不同的方式设置了 URL 的列表,但我没有达到我的目标

我想模拟一次真实的访问(如网络导航器):

  1. 要求
  2. html响应
  3. 嵌入在代码中的对象的请求

我可以创建嵌入在代码中的对象的分组列表,但结果面向每个人的每个请求。例如:

我在“累积病例信息”中的“家”标签显示:

4554 28.21% / 平均 171.2 毫秒

171.2 ms 是每个对象的平均时间。我想要完整请求的平均时间(html 和嵌入对象)

是否可以通过发出 yandex.tank 指示的请求来执行负载测试?还是使用其他负载测试工具?

0 投票
1 回答
782 浏览

nginx - 为什么 Yandex Tank 不产生所需的负载

我有 2 台类似的服务器:16 个 vCPU,2.4 GHz,Intel Xeon E5-2676v3,64 GiB 内存。

首先它们产生负载,第二个处理请求。

配置加载.ini:

预期:负载将逐步生成,从 1 000 RPS 开始,每 15 个添加 1 000 RPS,最高可达 10 000 RPS。

我们有:

预期 1000,有 ~1000(平均响应时间 7 毫秒)。

预计 2000 年,有 ~2000 年(平均响应时间 30 毫秒)。

预期 3000,有 ~2700(平均响应时间 250 毫秒)。

预期 4000,有 ~2700(平均响应时间 250 毫秒)。

此外,无论计划增加多少 RPS,实际仍保持在 ~ 2700 以内。

有一些建议: 1. Yandex Tank“理解”,服务器不能处理这样的负载,不要增加它。2.服务器无法建立更多连接

测试 url - /api/test 由 rails application + nginx 作为代理处理。

我使用静态文件进行了测试以检查第二个建议。结果:https ://overload.yandex.net/8175

超过 2700 的连接数 = ~200 000。但这个数字比 load.ini 文件中的要求少 - const(500000,15s)。

问题:为什么 Yandex Tand 不产生所需的负载?或者我可能错误地理解了结果?

0 投票
1 回答
578 浏览

ssl - 带有幻像的 Yandex-Tank TLS 请求

如何设置 yandex-tank 来告诉 phantom 使用 TLS 加密而不是 SSL?我已经发现可以通过它的启动参数将幻象配置为使用 TLS --ssl-protocol=tlsv1,但我不知道在使用 yndex-tank 配置时如何传递此参数。

使用启动 cli 参数链接到幻像配置问题

这是配置幻象负载生成器的load.ini文件的一部分。

我正在尝试直接测试 Google Cloud Functions 只是为了确认连接中断,事实证明,GCF 使用 TLS 加密。我用 curl 对此进行了测试,所以现在我需要使用 tank 以某种方式对其进行配置。

0 投票
2 回答
207 浏览

load-testing - 自托管的 BlazeMeter Sense 和 Yandex 过载类似物

有没有像 Yandex Overload 和 BlazeMeter Sense 这样的自托管负载测试结果服务?

0 投票
1 回答
289 浏览

docker - 为什么我在使用 Yandex 时出现安装错误?

0 投票
2 回答
459 浏览

jmeter - 如何使用 JMeter 负载测试 https 端点获得高 rps

我正在尝试使用 JMeter 测试我的 https 端点。我想每秒至少发出 10000 个请求,但是当我将线程数设置为 10000 时,我得到的 rps 更少,大约 500。

我尝试将线程数设置为 1000 和 100,令人惊讶的是我得到了相同数量的 rps。我正在使用 HTTP 采样器,并且“使用 Keep-Alive”设置为 true。当我查看统计数据时,我看到当使用 100 个线程时,它使用了 Keep-Alive 并且 connect_time 大约是 100 毫秒,但是当线程数更高时,connect_time 增长,就像它停止重用连接一样。

我知道这不是服务器问题,因为我尝试使用 Yandex.Tank 和 phantom 测试同一个端点,它可以轻松地保持每秒 10 000 个请求,问题是它不能使用响应数据发出更多请求,这就是为什么我必须使用 JMeter 来完成这项任务。