WebアプリケーションでPOSTアクションの1つの負荷テストを実行したいと思います。問題は、POSTデータで一意の電子メールアドレスを受信した場合にのみアクションを完了できることです。次のように、それぞれが固有の電子メールを含む数千のリクエストを含むwcatスクリプトを生成しました。
transaction
{
id = "1";
weight = 1;
request
{
verb = POST; postdata = "Email=test546546546546%40loadtest.com&...";
setheader { name="Content-Length"; value="...";
}
// more requests like that
}
私のUBR設定ファイルは次のようなものです。
settings
{
counters
{
interval = 10;
counter = "Processor(_Total)\\% Processor Time";
counter = "Processor(_Total)\\% Privileged Time";
counter = "Processor(_Total)\\% User Time";
counter = "Processor(_Total)\\Interrupts/sec";
}
clientfile = "<above-wcat-script>";
server = "<host name>";
clients = 3;
virtualclients = 100;
}
テストを実行すると、3x100 = 300のクライアントがリクエストの送信を開始しますが、同じ順序で送信しているため、最初のクライアントからの最初のリクエストが処理され、他のクライアントからの次の299のリクエストは一意ではなくなります。次に、あるクライアントからの2番目の要求が処理され、他のクライアントからの299個の同一の要求は一意ではありません。リクエストをランダム化するか、異なる順序で実行するか、仮想クライアントごとに個別のシナリオスクリプトを設定して、各リクエストに一意の電子メールアドレスを含める方法が必要です。WCATでそれを行うことは可能ですか?
それとも、そのようなテストを実行できる他のツールがありますか?