4

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
    

そのようなリクエストを異なるログイン フィールドで送信することは可能ですか?

4

2 に答える 2

6

はい、可能です。リクエスト スタイルの弾薬ファイルを使用する必要がある POST リクエストについては、 http: //yandextank.readthedocs.org/en/latest/tutorial.html#request-styleを参照してください。

弾薬ファイルをコマンド ライン パラメーターとして指定するか、[phantom] セクションの tank .ini ファイルに入れることができます。

ファントムをロード ジェネレーターとして使用すると、シナリオ ベースのテストを実行できないため、事前に要求に必要なすべてのデータを生成する必要があります。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

...
于 2014-03-11T17:17:42.347 に答える
1

uri-styleに似たURI+POST形式もありますが、投稿本文があります。

ロード.ini:

ammo_type=uripost

ammo.uripost:

[Host: example.org]
[Connection: close] 
[User-Agent: Tank]  
5 /route/?rll=50.262025%2C53.276083~50.056015%2C53.495561&origin=1&simplify=1
class
10 /route/?rll=50.262025%2C53.276083~50.056015%2C53.495561&origin=1&simplify=1
hello!clas
7 /route/?rll=37.565147%2C55.695758~37.412796%2C55.691454&origin=1&simplify=1
uripost

uris のある行頭の数字は、投稿本文のサイズです。

于 2014-03-12T09:43:16.620 に答える