Yandex坦克发布数据

Mik*_*aev 4 load-testing yandex yandex-tank

我想使用yandex tank测试我的Web应用程序,我想测试注册,所以我需要发送这样的请求

  • 标头

    POST /registration HTTP/1.1
    Host: localhost:8080
    Connection: keep-alive
    Content-Length: 30
    Cache-Control: max-age=0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Origin: http://localhost:8080
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36
    Content-Type: application/x-www-form-urlencoded
    Referer: http://localhost:8080/registration
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: en-US,en;q=0.8,ru;q=0.6
    Cookie: csrftoken=XJ3oheJb0SndHfNAH2lSV2AtKNxxuXdv; JSESSIONID=igq9ejgl10jirr4t73mpjblp
    
    Run Code Online (Sandbox Code Playgroud)
  • 表格数据

    login=abracadbra&password=brar
    
    Run Code Online (Sandbox Code Playgroud)

是否可以使用不同的登录字段发送这种请求?

小智 6

是的,有可能,对于POST请求,您应该使用请求样式的弹药文件,请参见http://yandextank.readthedocs.org/en/latest/tutorial.html#request-style

您可以将ammo文件指定为命令行参数,也可以将其放在[phantom]节的tank .ini文件中。

请记住,使用phantom作为负载生成器是不可能执行基于方案的测试的,因此您应该提前生成所有必要的数据以用于请求。Yandex-tank只会根据所需的负载方案发送它。

我不确定CSRF保护在您的情况下如何工作,并且如果它不允许多个请求重复使用会话和csrftoken(并且此参数对于注册请求是必需的),则需要以某种方式获取有效的Cookie每个生成弹药的请求。在这种情况下,建议您切换到基于场景的工具,即jmeter。您也可以将jmeter用作yandex-tank的负载生成器,请参见http://yandextank.readthedocs.org/en/latest/configuration.html#jmeter

如果您可能将同一Cookie重复使用以进行多次注册,则ammo文件将如下所示:

649 tag1
POST /registration HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 30
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost:8080/registration
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,ru;q=0.6
Cookie: csrftoken=XJ3oheJb0SndHfNAH2lSV2AtKNxxuXdv; JSESSIONID=igq9ejgl10jirr4t73mpjblp

login=abracadbra&password=brar

646 tag2
POST /registration HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 27
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost:8080/registration
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,ru;q=0.6
Cookie: csrftoken=XJ3oheJb0SndHfNAH2lSV2AtKNxxuXdv; JSESSIONID=igq9ejgl10jirr4t73mpjblp

login=sample2&password=brar

...
Run Code Online (Sandbox Code Playgroud)