4

うまくいけば、これはJMeterテストの一般的な問題です。

JMeterを介してプロキシサーバーをセットアップし、DEVELOPMENT環境でテストケースを「記録」します。これは問題なく機能し、デフォルトの「サーバー名またはIP」と「プロトコル」をグローバルに設定するために 「 HTTPリクエストのデフォルト」を設定しました。

DEVでのテストが完了したので、さらにテストを行うためにコードをQAサーバーに移動しました。デフォルトの「サーバー名」を変更してからテストを実行するだけでよいと思いました。

私が気づいたことの1つは、テストケースの各サンプラーについて、その特定のサンプラーの「HTTPヘッダーマネージャー」に他のヘッダー(User-Agent、Cache-Controlなど)が存在することです。Refererヘッダーは唯一のヘッダーです。 DEVサーバーとしてはまだ「ハードコーディング」されているので心配です。

これを動的に設定する方法はありますか?これにより、この記録されたテストを複数の環境で実行できますか?これは通常どのように処理されますか?

どんな助けでも大歓迎です!ありがとう。

jg

4

3 に答える 3

3
  1. serverテストプランのルートで指定されたJMeter変数を設定します
  2. HTTPリクエストのデフォルトの[サーバー名]フィールドでその変数を使用します
  3. HTTPヘッダーマネージャーのリファラーフィールド設定でその変数を使用します

また、コマンドラインから非GUI JMeter実行に渡す場合は、変数の代わりにJMeterプロパティを使用できます。

于 2011-08-18T07:19:15.320 に答える
3

Jmeterは、HTTPリクエストに値が指定されていない場合にのみ、HTTPリクエストのデフォルトを読み取ります。リクエストでドメインを空白のままにすると、リクエストから読み取られます。それ以外の場合は、ローカル値を使用します。

簡単な修正として、テキストエディタでJMXファイルを開き、ドメインのすべてのインスタンスを空白の値に置き換えます。Jmeterでファイルを開いたら、ドメイン値をHTTPリクエストのデフォルト設定要素に追加し直します。

今後これを回避するには、記録する前にリクエストのデフォルト値を入力してください。Jmeterは、デフォルトに一致する値を自動的に除外します。

変数とを使用してこれを行うこともできますuser defined values。設定するデフォルト値に注意してください。たとえば、と言った場合customerID = 123、Jmeterが記録中に「123」を検出すると、それは。に置き換えられ${customerID}ます。したがって、値が「12345」の場合、Jmeterは記録します${customerID}45

于 2011-08-18T16:59:56.043 に答える
0

これは私がしました:

  • SRVNAMEおよびSRVPORTという名前のユーザー定義変数を作成しました

  • jmxファイルのhttpリファラー値を次のように変更しました。

<elementProp name="Referer" elementType="Header">
  <stringProp name="Header.name">Referer</stringProp>
  <stringProp name="Header.value">http://${SRVNAME}:${SRVPORT}/SomePage.html?querystring=blah</stringProp>
</elementProp>
  • コマンドラインからプロパティを指定できるように、オーバーライドを使用して変数に値を割り当てます。
${__P(srvname,www.defaultserver.org)}
${__P(srvport,80)}
  • [サーバー名またはIP]および[ポート番号]テキストボックスで、HTTPリクエストのデフォルトの変数も使用しました。

お役に立てれば

于 2012-12-13T11:06:53.000 に答える