2

Windows Server 2008 Std 上の IIS 7 用の WCAT 6.4 の初期テスト/構成で問題が発生しています。私たちは WCAT にかなり慣れていないので、これはかなり素朴な質問かもしれません。

大量のトラフィックがないと予想される Web アプリをテストしており、要求の数を調整し、スループットを徐々に上げて Web アプリのベンチマークを行う WCAT シナリオを実装しようとしています。与えられたスクリプトは 1 秒あたり約 500 リクエストを生成しますが、それよりも小さく開始しようとしています!

WCAT doc を読むと、シナリオ ファイルに「throttle」属性を含めることがこれを達成するための正しい方法のようですが、これを実行しようとすると「無効なコードを受け取りました」というメッセージが表示されます。WCAT に付属するプレハブ サンプル テスト スクリプトの (非常に微調整した) バージョンを使用していますが、「throttle」要素を含めない限り問題なく動作するようです。(以下のコマンドラインと「home.ubr」スクリプト)

コマンド ライン構文に「-throttlerps」引数を含めることで、1 秒あたりのリクエストをいくらかスロットリングすることができましたが、シナリオ ファイル オプションを機能させるにはまだ問題があります。コマンドライン構文:

<directory>\wcat.wsf -terminate -run -clients localhost -t samples\scripts\home.ubr -f samples\scripts\settings.ubr -s localhost -throttlerps 1

およびシナリオ ファイル:

scenario
{
name    = "IIS Home Page";

warmup      = 10;
duration    = 20;
cooldown    = 10;
//throttle  = 10;  //HERE is what throws an error!

/////////////////////////////////////////////////////////////////
//
// All requests inherit the settings from the default request.
// Defaults are overridden if specified in the request itself.
//
/////////////////////////////////////////////////////////////////
default
{
    // send keep-alive header
    setheader
    {
        name    = "Connection";
        value   = "keep-alive";
    }

    // set the host header
    setheader
    {
        name    = "Host";
        value   = server();
    }

    // HTTP1.1 request
    version     = HTTP11;

    // keep the connection alive after the request
    close       = ka;
}

//
// This script is made for IIS7
//
transaction
{
    id = "Default Web Site Homepage";
    weight = 1;

    request
    {
        url         = "/";
        statuscode  = 200;
    }

    request
    {
        url         = "/welcome.png";
        statuscode  = 200;
    }

    //
    // specifically close the connection after both files are requested
    //
    close
    {
        method      = reset;
    }
}

 transaction
{
    id = "Default Web Site Homepage";
    weight = 1;

    request
    {
        url         = "/";
        statuscode  = 200;
    }

    request
    {
        url         = "/welcome.png";
        statuscode  = 200;
    }

    //
    // specifically close the connection after both files are requested
    //
    close
    {
        method      = reset;
    }
}
}

これまでのところ、これは一般的な問題ではないようです...洞察をいただければ幸いです。

4

1 に答える 1

3

OK、答えが見つかりました: WCAT のドキュメントにはタイプミスがあり、指定されたファイル属性は「throttle」としてリストされていましたが、正しいバージョンでは、シナリオ ファイル内の要素名として「throttle」ではなく「throttlerps」を使用していました (コマンドライン構文をミラーリングします)。多分他の誰かがこれにつまずくでしょう...

于 2012-12-02T06:58:26.313 に答える