1

私はそのようなWebServiceへの単純な呼び出しを行うWebtestを持っています:

MyWebService webService = new MyWebService();

webService.Timeout = 180000;

webService.myMethod();

私は ThinkTimes を使用していません。実行時間も 5 分に設定されています。1 人のユーザーのみをシミュレートしてこのテストを実行したとき、カウンターを確認したところ、次のような結果が得られました。

テスト合計: 4500

Network Interface\Bytes sent (エージェント マシン): 35,500

次に、同じテストを実行しましたが、今回は 2 人のユーザーをシミュレートしたところ、次のような結果が得られました。

テスト合計: 2225

Network Interface\Bytes sent (エージェント マシン): 30,500

そのため、ユーザー数を増やした場合、テスト/秒は 1 ユーザーのみを使用した場合の半分になり、エージェントによって送信されるバイト数も少なくなりました。CPU が 30% を超えることはなく、1.5 GB を超える RAM が空いているため、エージェント マシンにボトルネックがあるようには見えず、ネットワークの使用率もその容量の 0.5% のようです。

これをトラブルシューティングするために、ステップ パターンを使用してテストを実行したところ、シミュレートされたユーザーは 20 人から 800 人になりました。リクエスト/秒を確認すると、テスト全体を通して実質的に一定であるため、テストまたは環境にリクエスト数の増加を妨げている何かがあることは明らかです。

リクエストが適切に処理されていないことがわかるため、「応答時間」が長くなった場合は予想される動作ですが、奇妙なことに、応答時間は常にほぼ一定であり、実際にはかなり低いです。

ユーザー数を増やしたときにエージェントがリクエストを送信できない理由がわかりません。ヘルプ/ヒント/推測は本当にありがたいです。

4

1 に答える 1

0

1 秒あたりのリクエスト数が一定であり、仮想ユーザーの数にかかわらずテストの合計数が一定のままである場合、Web サービス自体が一度に設定された数のリクエストしか処理できないことがボトルネックである可能性があります。

于 2009-10-15T21:02:35.190 に答える