Skip to Content

Probe固有関数

Probeがexprに追加している関数です。

match_json

2つのオブジェクトを厳密に比較します。 キーと値が完全に一致する必要があり、片方にだけ存在するキーがあれば一致しません。

構文: match_json(src, target) 戻り値: Boolean

test: match_json(res.body, {"status": "ok", "count": 3})

diff_json

match_jsonと同じ基準で比較し、差分を文字列で返します。 一致する場合はNo diffを返します。

構文: diff_json(src, target) 戻り値: String

echo: "{{diff_json(res.body, vars.expected)}}"

parse_json

JSON文字列をオブジェクトに解析します。

構文: parse_json(string) 戻り値: 任意の型

outputs: meta: "{{parse_json(res.body.metadata)}}" test: parse_json(res.body.metadata).version == "1.0"

parse_int

文字列または数値を64ビット整数に変換します。 10進整数として解釈できない文字列はエラーになります。

構文: parse_int(value) 戻り値: Integer

test: parse_int(res.headers["Content-Length"]) > 0

parse_float

文字列を浮動小数点数に変換します。

構文: parse_float(string) 戻り値: Float

test: parse_float(res.body.score) >= 8.5

encode_base64

文字列を標準Base64でエンコードします。

構文: encode_base64(string) 戻り値: String

with: headers: Authorization: "Basic {{encode_base64(vars.user + ':' + vars.pass)}}"

decode_base64

標準Base64の文字列をデコードします。

構文: decode_base64(string) 戻り値: String

outputs: payload: "{{decode_base64(res.body.data)}}"

unixtime

現在時刻をUnixタイムスタンプ(秒)で返します。

構文: unixtime() 戻り値: Integer

with: headers: X-Timestamp: "{{unixtime()}}"

random_int

[0, n)の範囲の乱数を返します。 nは正の整数である必要があります。

構文: random_int(n) 戻り値: Integer

with: url: "{{vars.base_url}}/test?seed={{random_int(1000)}}"

random_str

指定した長さのランダムな英数字([a-zA-Z0-9])を返します。 長さの上限は1000000文字です。

構文: random_str(length) 戻り値: String

vars: email: "user-{{random_str(8)}}@example.com"
更新日時