jMeter-関数
JMeterの関数とユーザー変数
JMeter関数は、テストツリー内の任意のサンプラーまたはその他の要素のフィールドに入力できる特別な値です。
関数呼び出しは次のようになります-
${__functionName(var1,var2,var3)}
_functionNameは関数の名前と一致します。例えば${__threadNum}。
関数パラメーターにコンマが含まれている場合は、以下に示すように、必ず「\」でエスケープしてください。
${__time(EEE\, d MMM yyyy)}
変数は-として参照されます
${VARIABLE}
機能一覧
次の表に、タイプに大まかにグループ化された関数のグループを示します。
関数タイプ | 名前 | コメント |
---|---|---|
情報 | threadNum | スレッド番号を取得します。 |
情報 | samplerName | サンプラー名(ラベル)を取得します。 |
情報 | machineIP | ローカルマシンのIPアドレスを取得します。 |
情報 | machineName | ローカルマシン名を取得します。 |
情報 | 時間 | 現在の時刻をさまざまな形式で返します。 |
情報 | ログ | メッセージをログに記録(または表示)します(そして値を返します)。 |
情報 | logn | メッセージ(空の戻り値)をログに記録(または表示)します。 |
入力 | StringFromFile | ファイルから1行を読み取ります。 |
入力 | FileToString | ファイル全体を読み取ります。 |
入力 | CSVRead | CSV区切りファイルから読み取ります。 |
入力 | XPath | XPath式を使用してファイルから読み取ります。 |
計算 | カウンター | 増分番号を生成します。 |
計算 | intSum | int番号を追加します。 |
計算 | longSum | 長い数字を追加します。 |
計算 | ランダム | 乱数を生成します。 |
計算 | RandomString | ランダムな文字列を生成します。 |
計算 | UUID | ランダムなタイプ4UUIDを生成します。 |
スクリプティング | BeanShell | BeanShellスクリプトを実行します。 |
スクリプティング | javaScript | JavaScript(Mozilla Rhino)を処理します。 |
スクリプティング | jexl、jexl2 | CommonsJexl式を評価します。 |
プロパティ | プロパティ | プロパティを読み取ります。 |
プロパティ | P | プロパティを読み取ります(省略形)。 |
プロパティ | setProperty | JMeterプロパティを設定します。 |
変数 | スプリット | 文字列を変数に分割します。 |
変数 | V | 変数名を評価します。 |
変数 | eval | 変数式を評価します。 |
変数 | evalVar | 変数に格納されている式を評価します。 |
ストリング | regexFunction | 正規表現を使用して前の応答を解析します。 |
ストリング | escapeOroRegexpChars | ORO正規表現で使用されるメタ文字を引用します。 |
ストリング | char | 数値のリストからUnicode文字値を生成します。 |
ストリング | エスケープ解除 | Javaエスケープを含む文字列を処理します(例:\ n&\ t)。 |
ストリング | unescapeHtml | HTMLでエンコードされた文字列をデコードします。 |
ストリング | escapeHtml | HTMLエンコーディングを使用して文字列をエンコードします。 |
ストリング | TestPlanName | 現在のテスト計画の名前を返します。 |
機能には2種類あります-
ユーザー定義の静的値(または変数)
組み込み関数
ユーザー定義の静的値を使用すると、ユーザーは、テストツリーがコンパイルされて実行のために送信されたときに、静的値に置き換えられる変数を定義できます。
変数をネストすることはできません。すなわち${Var${N}} 動作しません。
__V(変数)関数(2.2以降のバージョン)を使用してこれを行うことができます-$ {__ V(Var $ {N})}。
このタイプの置換は機能なしで可能ですが、便利で直感的ではありません。
関数と変数を使用する場所
関数と変数は、任意のテストコンポーネントの任意のフィールドに書き込むことができます。
次の機能は、テスト計画でうまく機能するはずです-
- intSum
- longSum
- machineName
- BeanShell
- javaScript
- jexl
- random
- time
- プロパティ関数
- ログ機能
テスト計画で使用される機能には、いくつかの制限があります。関数の処理時にJMeterスレッド変数が完全に設定されていないため、パラメーターとして渡された変数名が設定されず、変数参照が機能しません。したがって、split()とregex()および変数評価関数は機能しません。threadNum()関数は動作しません、それはテスト計画レベルでは意味がありません。
変数と関数の参照
テスト要素内の変数の参照は、変数名を「$ {」および「}」で囲むことによって行われます。
関数は同じ方法で参照されますが、慣例により、関数の名前はユーザー値の名前との競合を避けるために「__」で始まります。
一部の関数は引数を取り、それらを構成します。これらは括弧で囲まれ、コンマで区切られます。関数が引数を取らない場合は、括弧を省略できます。例-
${__BeanShell(vars.put("name"\,"value"))}
または、スクリプトを変数として定義することもできます。たとえば、テスト計画-
SCRIPT vars.put("name","value")
スクリプトは次のように参照できます-
${__BeanShell(${SCRIPT})}
関数ヘルパーダイアログ
関数ヘルパーダイアログは、JMeterの Options タブ。
関数ヘルパーを使用すると、プルダウンから関数を選択し、その引数に値を割り当てることができます。表の左側の列は引数の簡単な説明を提供し、右側の列はその引数の値を書き込む場所です。関数が異なれば、引数も異なります。
これを行ったら、[生成]ボタンをクリックすると、適切な文字列が生成されます。これをコピーして、必要に応じてテスト計画に貼り付けることができます。
事前定義された変数
一部の変数は、JMeterによって内部的に定義されています。彼らは-
COOKIE_cookiename-Cookie値が含まれます。
JMeterThread.last_sample_ok-最後のサンプルがOKであったかどうか-true / false。注-これは、PostProcessorsおよびAssertionsが実行された後に更新されます。
START変数。
事前定義されたプロパティ
一部の組み込みプロパティは、JMeterによって定義されています。これらは以下のとおりです。便宜上、STARTプロパティも同じ名前の変数にコピーされます。
START.MS-ミリ秒単位のJMeter開始時間。
START.YMD-JMeterの開始時刻はyyyyMMddです。
START.HMS-HHmmssとしてのJMeter開始時間。
TESTSTART.MS-ミリ秒単位のテスト開始時間。
START変数/プロパティは、テストの開始時間ではなく、JMeterの起動時間を表すことに注意してください。これらは主にファイル名などでの使用を目的としています。