Jmeter-functions
提供:Dev Guides
jMeter-関数
JMeterの関数とユーザー変数
JMeter関数は、任意のサンプラーまたはテストツリー内の他の要素のフィールドに入力できる特別な値です。
- 関数呼び出しは次のようになります-
${__functionName(var1,var2,var3)}
- functionName_は、関数の名前と一致します。 たとえば、 $ \ { threadNum} 。
- 関数のパラメータにカンマが含まれている場合、以下に示すように「\」でエスケープするようにしてください-
${__time(EEE\, d MMM yyyy)}
- 変数は次のように参照されます-
${VARIABLE}
機能一覧
次の表は、大まかに型にグループ化された関数のグループを示しています-
Function Type | Name | Comment |
---|---|---|
Information | threadNum | Get thread number. |
Information | samplerName | Get the sampler name (label). |
Information | machineIP | Get the local machine IP address. |
Information | machineName | Get the local machine name. |
Information | time | Return current time in various formats. |
Information | log | Log (or display) a message (and return the value). |
Information | logn | Log (or display) a message (empty return value). |
Input | StringFromFile | Read a line from a file. |
Input | FileToString | Read an entire file. |
Input | CSVRead | Read from CSV delimited file. |
Input | XPath | Use an XPath expression to read from a file. |
Calculation | counter | Generate an incrementing number. |
Calculation | intSum | Add int numbers. |
Calculation | longSum | Add long numbers. |
Calculation | Random | Generate a random number. |
Calculation | RandomString | Generate a random string. |
Calculation | UUID | Generate a random type 4 UUID. |
Scripting | BeanShell | Run a BeanShell script. |
Scripting | javaScript | Process JavaScript (Mozilla Rhino). |
Scripting | jexl, jexl2 | Evaluate a Commons Jexl expression. |
Properties | property | Read a property. |
Properties | P | Read a property (shorthand method). |
Properties | setProperty | Set a JMeter property. |
Variables | split | Split a string into variables. |
Variables | V | Evaluate a variable name. |
Variables | eval | Evaluate a variable expression. |
Variables | evalVar | Evaluate an expression stored in a variable. |
String | regexFunction | Parse previous response using a regular expression. |
String | escapeOroRegexpChars | Quote meta chars used by ORO regular expression. |
String | char | Generate Unicode char values from a list of numbers. |
String | unescape | Process strings containing Java escapes (e.g. \n & \t). |
String | unescapeHtml | Decode HTML-encoded strings. |
String | escapeHtml | Encode strings using HTML encoding. |
String | TestPlanName | Return name of current test plan. |
- 2種類の機能があります-
- ユーザー定義の静的な値(または変数)
- 組み込み関数
- ユーザー定義の静的な値を使用すると、テストツリーをコンパイルして実行するために送信するときに、静的な値に置き換える変数を定義できます。
- 変数はネストできません。つまり、 $ \ {Var $ \ {N}} は機能しません。
- V(変数)関数(2.2以降のバージョン)を使用してこれを行うことができます-$ \ { V(Var $ \ {N})}。
- このタイプの置換は機能なしでも可能ですが、あまり便利ではなく、直感的でもありません。
関数と変数を使用する場所
関数と変数は、任意のテストコンポーネントの任意のフィールドに書き込むことができます。
次の機能は、テスト計画でうまく機能するはずです-
- intSum
- longSum
- machineName
- BeanShell
- javaScript
- jexl
- ランダム
- time
- プロパティ関数
- ログ機能
テスト計画で使用される機能には、いくつかの制限があります。 JMeterスレッド変数は、関数の処理時に完全には設定されていないため、パラメーターとして渡された変数名は設定されず、変数参照は機能しません。 したがって、_split()_および_regex()_および変数評価関数は機能しません。 _threadNum()_関数は機能せず、テスト計画レベルでは意味がありません。
変数と関数の参照
- テスト要素内の変数の参照は、変数名を「$ \ {」および「}」で囲んで行います。
- 関数は同じ方法で参照されますが、慣例により、ユーザー名の名前との競合を避けるために、関数の名前は「__」で始まります。
- 一部の関数は、引数を設定するために引数を取ります。これらは、カンマ区切りの括弧で囲みます。 関数が引数を取らない場合、括弧は省略できます。 たとえば-
${__BeanShell(vars.put("name"\,"value"))}
- または、スクリプトを変数として定義できます。 テスト計画-
SCRIPT vars.put("name","value")
- スクリプトは次のように参照できます-
${__BeanShell(${SCRIPT})}
関数ヘルパーダイアログ
関数ヘルパーダイアログは、JMeterの[オプション]タブから利用できます。
- 関数ヘルパーを使用して、プルダウンから関数を選択し、その引数に値を割り当てることができます。 表の左の列は引数の簡単な説明を提供し、右の列はその引数の値を書き込む場所です。 異なる関数は異なる引数を取ります。
- これが完了したら、「生成」ボタンをクリックすると、適切な文字列が生成されます。必要な場所にテストプランにコピーアンドペーストできます。
事前定義された変数
一部の変数は、JMeterによって内部的に定義されています。 彼らは-
- COOKIE_cookiename-Cookie値が含まれています。
- JMeterThread.last_sample_ok-最後のサンプルがOKであったかどうか-true/false。 注-これは、ポストプロセッサとアサーションが実行された後に更新されます。
- START変数。
定義済みのプロパティ
一部の組み込みプロパティは、JMeterによって定義されます。 これらは以下にリストされています。 便宜上、STARTプロパティも同じ名前の変数にコピーされます。
- START.MS-ミリ秒単位のJMeter開始時間。
- START.YMD-yyyyMMddとしてのJMeterの開始時間。
- START.HMS-HHmmssとしてのJMeterの開始時間。
- TESTSTART.MS-ミリ秒単位のテスト開始時間。
START変数/プロパティは、テストの開始時間ではなく、JMeterの開始時間を表すことに注意してください。 主にファイル名などでの使用を目的としています。