質問

私は、負荷テストへのSOAP WebサービスをJMeterのを使用しています。 Webサービスは、私はlocalhostなどのdevのボックス、統合ボックス、生産ボックスのように、場所の束に存在します。

私は、Webサービス(SOAP)リクエストサンプラーを使用していますし、「IPのサーバー名」、「パス」、およびそのような「SOAPアクション」PARAMATERS設定しています:

Server Name of IP: ${SERVER}
Path: ${PATH}/service
SOAPAction: http://${SERVER}${PATH}service#action
「ユーザー定義変数」config要素を使用している場合、

これは罰金を動作します。私はちょうど私がヒットしようとしている場所に固有のものは何でもサーバーとパスを変更します。しかし、これは、私が対処したいお尻の痛みの詳細です。私は何を期待して(としようとした)されたことは、私のサーバーとパスを設定し、私のスレッドグループ内の複数の場合はロジックコントローラを追加して、$ {MODE}(別のUDV)をチェックし、それに応じて行動することでした。だから、私のような何かを持っていた。

"${MODE}" == "dev"
"${MODE}" == "local"
"${MODE}" == "production"

それぞれの場合コントローラ上の1つは、私は、適切なサーバーとパスを設定し、子UDV要素を持っていました。 (私のスレッドグループ内の出現順で)最後のUDVからの値が常に評価されているからUDVを続けるだろう偽を返す私の仮定と、コントローラにもかかわらず、使用されていました。しかし、私はどのスレッドが開始される前に、すべてでUDVが、場所に関係なく評価されていることをドキュメントで参照してください。だから、私が代わりにユーザーPARAMATERSを使用してみましたが、$ {サーバ}と私のSOAPサンプラーで$ {PATH}の値が置き換えられませんし、私はHTTPへの要求を作っています:// $ {サーバ} $ {PATH}であります良くない。

これがこれを処理する任意のエレガントな方法はありますか?現在、私はちょうどサーバーとパスの値私は当たっていますサーバーを変更する必要があるたびに貼り付けコピーしています。私はまた、複数のテスト計画、私は負荷テストに行き、各サーバーごとに1つを持っている可能性がありますが、私はの束を持って、新しいテストを追加し、既存のテストを無効にして、SOAPリクエストの一部を変更することを含む構造体への頻繁な更新を行うことを知っています彼らは、良い解決策のように見えるしていません。

すべてのヘルプ?

役に立ちましたか?

解決

私たちは、BeanShellのサンプラーと試験プラン自体に定義された変数で、この問題を解決します。

の代わりに要素を使用しての「ユーザー定義変数」あなたは全体の試験プランのための変数を定義することができます。ただ、ツリーのルート要素をクリックして、コンテンツの「DEV」、「ローカル」または「生産」と「モード」と呼ばれる変数を追加します。

テストケースではサンプラー「ビーンシェルサンプラー」を追加し、次のコードを追加します:

if ("dev".equals(vars.get("mode"))) {
 vars.put("server","x.y.z");
}
if ("local".equals(vars.get("mode"))) {
 vars.put("server","127.0.0.1");
}
if ("production".equals(vars.get("mode"))) {
 vars.put("server","10.0.0.10");
}

あなたは、あなたが必要とするすべての変数を定義し、また必要に応じて他の環境を追加することができます。

しかし、あなたはまた、さらなるステップを行くことができます: シンプルなコントローラを作成し、そこにあなたのビーンシェルサンプラーを置きます。すべてのスレッドグループに、あなたは今、モジュールコントローラと、このシンプルなコントローラにアクセスすることができます。このケースでは、全体の試験プランのために一度だけご使用の環境セレクタを定義する必要があります。

他のヒント

個人的に私は、すべてのトップレベルで、いくつかのUDVモジュールを持つことがはるかに簡単に見つけます。

私が使用するものを除く無効それらすべてを保ちます。

私は同じことをやってのように多くの方法がある参照; - )

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top