1

名前が「Status」、デフォルト値が「Started」のユーザー定義変数を作成しました。

次の内容の HTML 応答を受け取りました。

<SPAN id="ApplicationStatus">&nbsp;Interrupted</SPAN>

Span Id 値を取得し、beanshell サンプラーで使用して、If Controller または Switch Controller でさらに処理したいと考えています。

正規表現エクストラクタを使用して、必要な値とその機能を抽出しました。

しかし、私が言うvars.get("Status")と、常にデフォルト値の「開始」が返されます。

必要な値「中断」を抽出し、それをユーザー定義変数「ステータス」に置き換える方法はありますか?

4

2 に答える 2

0

#ApplicationStatusはい、その値をユーザー定義変数 ( )に取得できますUDV

正規表現を使用することはできますが、実際にはこのタイプの解析には使用しないでください。その理由については詳しく説明しません。

代替(より良いソリューションIMHO)を使用してそれを行う方法は次のとおりです。

String html = "<SPAN id=\"ApplicationStatus\">&nbsp;Interrupted</SPAN>";

Document doc = Jsoup.parse(html);

String value = doc.select("#ApplicationStatus").first().text();
//Put value in UDV Status
vars.put("Status", value);

これを、この種の解析を行うサンプラー、つまり Beanshell サンプラーに追加できます。インポートは次のとおりです (このコードの上に移動します)。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

このコードはJsoupに依存しているため、jsoup jar をダウンロードしてディレクトリに配置する必要があることに注意してください$JMETER_HOME/lib

これがあなたの問題に光を当てることを願っています。

アップデート

Java を避けたい場合は、HTML 要素からテキスト値を抽出する小さな jmeter ポスト プロセッサ コンポーネントを作成しました。を見てみましょう :

https://github.com/c0mrade/Html-Extractor

上記のページからポスト プロセッサをインストールする手順に進む場合は、次のように使用します。

サンプラーを右クリックします。Post Processors -> Html Extractor を追加し、jquery セレクター フィールドに書き込み#ApplicationStatus、選択した変数に結果を保存します ( Status)。これに続いて、デバッグ サンプラーを追加します。デバッグ サンプラーにStatusHtml Extractor の値を持つ変数がある場合は、動作しています。あなたは終わった!

于 2012-12-04T19:46:14.400 に答える
-1

問題を再現できません。

これが私の計画です:

- User defined variables with variable Status
- Thread Group
  - HTTP Request
    - Regular expression extractor with reference name = Status
  - Beanshell Sampler that logs Status variable

Beanshellサンプラーは、正規表現エクストラクターで受信した値をログに記録します

于 2012-12-04T19:26:54.997 に答える