0

以下は、より大規模な実際のテスト計画で私が抱えていた問題を再現する不自然なデモです。RegEx PostProcessor が実行中に一致しないことを示す 3 つのスクリーン キャプチャがあります。

[編集]私のスクリーンショットでは、確認する応答フィールドが「応答メッセージ」として表示されていることに注意してください。私はすでに Body をテストしており、説明したように「null」になりました。スクリーン キャプチャは、選択されたボディが null の結果で表示されていればよかったのですが、それでも意味があるはずです) 。

1)ビュー ツリー内のサンプラーの応答の HTML は次のとおり です。

Regex [Pp]age\s\d{1} を使用して、最初のサンプラー応答で HTML 内の目的のテキスト「Page 1」を正常に見つけていることに注意してください。

2)最初の Sampler のRegEx PostProcessor は次のとおり です。

前のスクリーン キャプチャと同じ正規表現を使用していることに注意してください。デフォルトのテキストは「notfound」で、結果の変数は「TempVar」です。

  • a)スクリーン キャプチャでは、[メイン サンプル] と [応答メッセージ] が選択されています。これはデフォルトのテキストを返します。
    b)表示されていません - 「メイン サンプル」と「本文」を試しましたが、null が返されます。

3)これは 2 番目のサンプラーのパスで、最初のサンプラーの正規表現の結果が URL パラメーターに入力されます (?MyVar=${TempVar} 図 3を参照) 。

ここでもう一度図 1を見てください。「応答メッセージ」を使用すると、実行中に 2 番目のサンプラーの動的 URL が「MyVar=notfound」になることがわかります (代わりに「本文」を使用すると、「MyVar=null」になります)。 .

私が間違っていることを教えてください。RegEx Extractor 画面ですべての組み合わせを試しましたが、式から一致するテキストを返すことができませんでした。

ありがとうございました。

4

1 に答える 1

1

使用している正規表現を次のように変更します。

<h3>This\sis\s([^<]*)<\\/h3>

使用している正規表現は機能しますが (ページ 1 で一致します)、変数に値を返すために () 表記を使用していないため、null になります。中括弧は、送り返されるものを示すために必要です。

このページをチェックしてください。JMeter が正規表現でどのように機能するかについて詳しく説明しています。

于 2012-06-11T18:11:16.217 に答える