Yandex-tank - 具有不同 http 标头的多个请求

Posted

技术标签:

【中文标题】Yandex-tank - 具有不同 http 标头的多个请求【英文标题】:Yandex-tank - several requests with different http headers 【发布时间】:2013-05-27 08:29:56 【问题描述】:

有没有人尝试使用Yandex-tank作为http负载测试工具?

我有一个用例来测试一个包含多个请求的 http 服务,这些请求包含不同的路径和查询参数以及不同的 http header。

例如第一个请求类型 - /test/user1?param1=1 [X-Forwarded-For: 192.168.0.1],第二个请求类型 - /test/user2?param1=2 [X-Forwarded-For: 192.168.0.2]

问题是如何配置 ammo.txt 文件以具有不同的 http 标头。

我试过了:

# load.conf    
[phantom]
address=myservice.loc #Target's address and port .
rps_schedule=line(1, 50, 1m) ## 1 minute, from 1 to 50 requests per second

# ammo.txt    
[X-Forwarded-For: 192.168.0.1]
/test/user1?param1=1    

[X-Forwarded-For: 192.168.0.2]
/test/user2?param1=2

测试执行正常,但所有请求都有 X-Forwarded-For: 192.168.0.1

我想知道如何配置 ammo.txt 以适应我的用例(具有不同的标题)? 您能否建议一些替代工具来执行此操作?

【问题讨论】:

【参考方案1】:

使用 URI 格式时不能有不同的标头。

UPD:我们添加了一项新功能,现在您可以在 uri 样式的弹药中执行此操作,请参阅 docs。带有标题修改的 uri 样式弹药示例:

[Connection: close]
[Host: target.example.com]
[Cookies: None]
/?drg tag1
/
/buy tag2
[Cookies: test]
/buy/?rt=0&station_to=7&station_from=9

您还可以按照here 的描述以请求样式生成弹药。 具有不同“主机”标头的请求式弹药示例:

34 good
GET / HTTP/1.0
Host: xxx.tanks1.example.com
User-Agent: xxx (shell 1)

78 bad
GET /abra HTTP/1.0
Host: xxx.tanks2.example.com
User-Agent: xxx (shell 1)

79 unknown
GET /ab/ra HTTP/1.0
Host: xxx.tanks3.example.com
User-Agent: xxx (shell 1)

34 good -- 这是标头,数字是以下请求的大小(以字节为单位)(包括行尾)。而good 是一个标记。

【讨论】:

你能在这里举个例子吗?

以上是关于Yandex-tank - 具有不同 http 标头的多个请求的主要内容,如果未能解决你的问题,请参考以下文章

命令错误:docker run direvius/yandex-tank

无法在 OpenSuse 中启动 yandex-tank

yandex-tank 最大活动实例

带有幻像的 Yandex-Tank TLS 请求

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

NavigationBar 标题为黑色