問題
セキュリティ上の理由から、アプリケーションがサービスをインターネットに公開していない場合、または Web Application Firewall (WAF) を使用している場合。 この場合、大量のストレス テストトラフィックがインターセプト、ブロック、スクラビングをトリガーする可能性があります。その結果、ストレス テストのトラフィックは WAF によってブロックされます。
解決策
解決策 1: WAF でヘッダーホワイトリストを設定する
テスト対象のアプリケーションが WAF を使用している場合、ヘッダーに基づいて WAF で Web サイトのホワイトリストルールを設定し、PTS のすべてのストレス テストリクエストを許可できます。次のステップを実行します:
Web Application Firewall 3.0 コンソールにログインします。上部のメニューバーから、WAF インスタンスのリソースグループとリージョン (中国本土 または 中国本土以外) を選択します。
左側のナビゲーションウィンドウで、[保護設定] > [コア Web 保護] を選択します。
ホワイトリストの左側にある
アイコンをクリックし、次に [操作] 列の [ルールの作成] をクリックします。表示されるダイアログボックスで、Web サイトのホワイトリストルールを作成し、[一致条件] を [ヘッダー] x-pts-test[存在する] に設定します。
PTS によって送信される HTTP リクエストには、x-pts-test ヘッダーが含まれています。したがって、Web サイトのホワイトリストルールを作成し、[一致条件] を [ヘッダー] x-pts-test [存在する] に設定する必要があります。詳細については、「Web サイトのホワイトリストを設定する」をご参照ください。
解決策 2: 負荷ジェネレーターの IP アドレスを取得し、IP アドレスホワイトリストを設定する
負荷ジェネレーターの IP アドレスをセキュリティポリシーの IP アドレスホワイトリストに追加することもできます。ストレス テストの IP アドレスは固定されていないことに注意してください。このソリューションでは、ストレス テストごとに IP アドレスホワイトリストを再設定する必要があります。解決策 1 を使用することをお勧めします。負荷ジェネレーターの IP アドレスを取得するには、次のステップを実行します:
ストレス テストを開始し、負荷ジェネレーターの IP アドレスを取得します。ストレス テストシナリオを作成した場合、左側のナビゲーションウィンドウで を選択できます。[シナリオ] ページで、開始するシナリオを見つけ、[操作] 列の [開始] をクリックします。
[テスト実行中] ページで、負荷ジェネレーターの IP アドレスを表示します。
共有リソースプールを使用する場合、ストレス テストを開始する前に負荷ジェネレーターの IP アドレスを取得することはできません。ストレス テストを開始する前にホワイトリストを設定するには、ホワイトリストの設定に必要な時間に基づいて、ストレス テストシナリオで起動待機時間を指定できます。遅延リリース期間中も仮想ユーザー分 (VUM) は消費されます。PTS ストレス テストと JMeter ストレス テストで起動待機時間を設定するには、次の操作を実行します:
PTS ストレス テストで起動待機時間を設定する
各ビジネスセッションに遅延リリース命令を追加します。ホワイトリストの設定に必要な時間に基づいて遅延時間を指定します。遅延リリース命令の追加方法の詳細については、「遅延リリース命令を使用する」をご参照ください。
JMeter ストレス テストで起動待機時間を設定する
JMeter テスト計画で、[Test Plan] を右クリックし、 を選択して setUp スレッドグループを追加します。
[setUp Thread Group] パネルで、[Specify Thread Lifetime] を選択し、次の図に示すように、setUp スレッドグループの起動遅延を期待される待機時間に設定します。