JMeter を使用して SOAP Web サービスの負荷テストを行っています。Web サービスは、ローカルホスト、開発ボックス、統合ボックス、運用ボックスなど、さまざまな場所に存在します。
私は WebService(SOAP) リクエスト サンプラーを使用しており、「IP のサーバー名」、「パス」、および「SOAP アクション」パラメーターを次のように設定しています。
Server Name of IP: ${SERVER}
Path: ${PATH}/service
SOAPAction: http://${SERVER}${PATH}service#action
これは、「ユーザー定義変数」構成要素を使用する場合にうまく機能します。SERVER と PATH を、ヒットしようとしている場所に固有のものに変更するだけです。ただし、これはお尻の痛みであり、対処したいと思います。私がやりたかった (そして試した) ことは、スレッド グループに複数の If Logic Controller を追加し、${MODE} (別の UDV) をチェックし、それに応じて行動し、SERVER と PATH を設定することでした。だから、私は次のようなものを持っていました
"${MODE}" == "dev"
"${MODE}" == "local"
"${MODE}" == "production"
If Controller ごとに 1 つずつ、適切な SERVER と PATH を設定する子 UDV 要素がありました。If Controller が false を返すと仮定しても、最後の UDV からの値 (私のスレッド グループでの出現順) が常に使用されていたため、UDV は評価されませんでした。ただし、スレッドが開始される前に、場所に関係なく、すべての UDV が評価されることがドキュメントに記載されています。そのため、代わりに User Paramaters を使用してみましたが、SOAP サンプラーの ${SERVER} と ${PATH} の値が置き換えられず、http://${SERVER}${PATH} にリクエストを送信しています。良くない。
これを処理するエレガントな方法はありますか?現在、ヒットしているサーバーを変更する必要があるたびに、SERVER と PATH の値をコピーして貼り付けているだけです。テストをロードするサーバーごとに 1 つずつ、複数のテスト計画を作成することもできますが、新しいテストの追加、既存のテストの無効化、SOAP リクエストの一部の変更など、構造を頻繁に更新します。それらは良い解決策とは思えません。
何か助けはありますか?