我想使用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
表格数据
login=abracadbra&password=brar
是否可以使用不同的登录字段发送这种请求?
是的,有可能,对于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 ...