2

2 つの IP アドレス/サーバー名をヒットするために使用される Jmeter スクリプトがあります。現在、2 つのサーバー名をヒットするために 2 つの Jmeter インスタンスを使用しています。HTTP Request Default でのサーバー名/IP アドレスのパラメータ化のように、単一の Jmeter インスタンスでこれを行う方法はありますか?

4

2 に答える 2

3

面白い。これまで試したことはありませんが、リクエストのデフォルトで定義する動的な値は常に再評価されるようです。

したがって、ランダムな値に応じて、JavaScript のランダムと 2 つの文字列として定義できます。

${__javaScript((Math.random()<0.5)?'ALMA':'KORTE')}

計画と結果のスクリーンショット:

JS 関数を使用した HTTP リクエストのデフォルト HTTP リクエスト サンプラー 1 1

一般的に、名前を csv ファイルに入れ、CSV 構成要素を使用し、CSV にロールオーバーがあると言う方が良いでしょう。ベスト プラクティスからの引用:

16.5 ユーザー変数 一部のテスト計画では、ユーザー/スレッドごとに異なる値を使用する必要があります。たとえば、ユーザーごとに一意のログインが必要なシーケンスをテストする場合があります。これは、JMeter が提供する機能を使用して簡単に実現できます。

例えば:

コンマで区切られたユーザー名とパスワードを含むテキスト ファイルを作成します。これをテスト計画と同じディレクトリに配置します。テスト計画に CSV DataSet 構成要素を追加します。変数に USER および PASS という名前を付けます。適切なサンプラーで、ログイン名を ${USER} に、パスワードを ${PASS} に置き換えます。CSV データ セット要素は、スレッドごとに新しい行を読み取ります。

于 2012-07-05T21:19:31.003 に答える
3

私はGábor Liptákの回答が好きですが、楽しみのために代替案を提供するつもりです.

DEVPROD環境 (架空の環境) の両方でテストを実行するとします。DEVに接続する場所host1PROD接続する場所、host2およびエンドポイントが同じである/myserviceendpoint

User Defined Variablesそのため、スレッド グループに追加することから始めます。2 つの変数を追加しましょう:

ENVIRONMENT->${__P(environment,host1)}ENDPOINT_PATH->/myserviceendpoint

追加Http Request samplerして内部Server Name or IPに値を設定する${ENVIRONMENT}と、それに応じて他のポートなどが変更されます。

したがって、デフォルトの環境はDEVです。環境を変更して変数をインスタンスにPROD追加BSF Preprocessorおよび変更する場合。ENVIRONMENTPROD

vars.put("ENVIRONMENT", "host2");

BSF Post Processorしたがって、テストでこれを無効/有効にして、 DEV/を切り替えることができますPROD。これは GUI モード用です。

これは、大きなテストがあり、GUI モードなしで jmeter を実行している場合に便利です。この部分はクール${__P(environment,host1)}です。コマンド ライン経由でパラメータを渡さない場合はDEV値が使用されます。それ以外の場合は、値を注入して環境を上書きできますDEV(詳細はこちらを参照)。

jmeter -n -t yourtest.jmx -l testresults.xml -Jenvironment=host2 //running  `PROD`
jmeter -n -t yourtest.jmx -l testresults.xml //running  `DEV`

これがスクリーンショットのように見える方法です(テスト計画):

ここに画像の説明を入力

結果(わかりやすくするためにいくつかのサンプルを追加):

ここに画像の説明を入力

したがって、環境を切り替えるか、GUI を使用せずに実行し、コマンド ライン経由で注入します。ポート/エンドポイントなど、他の属性に対してもこれを行うことができます。

于 2012-07-06T11:44:55.743 に答える