ユーティリティ
Random(乱数)
Section titled “Random(乱数)”| 入力 | min、max(数値)、seed |
| 出力 | result |
op | 戻り値 |
|---|---|
int | min と max の間の整数 |
float | 浮動小数点数 |
string | length 文字の文字列 |
boolean | ブール値 |
pick | items から取り出した 1 要素 |
seed フィールド(数値または文字列)を指定すると、抽選が決定的になります。
データに幅を持たせながらテストを再現可能にできるのは、これがあるからです。
これが、けっして再現できない {{$random…}} のヘルパーとの本質的な違いです。
Schema validate(スキーマ検証)
Section titled “Schema validate(スキーマ検証)”| 入力 | value、schema(文字列) |
| 出力 | valid、invalid、errors |
| 設定 | schema — draft-07、2019-09、2020-12 のいずれかの JSON Schema |
レスポンスが契約どおりかを確認するのに最適な道具です。
errors を Log に接続してください。違反の内容が 1 件ずつ出力されるので、
CI の失敗をそのまま調査に使えます。
HTTP リクエスト ──response[body]──► Schema validate ├─ valid ──► (続き) ├─ invalid ──► Throw └─ errors ──► LogRead file(ファイル読み込み)
Section titled “Read file(ファイル読み込み)”| 入力 | path(文字列) |
| 出力 | content(文字列) |
| 設定 | path — 絶対パス、または開いている .restorm ファイルからの相対パス |
シナリオをお使いのマシンと CI の間で持ち運べるようにするには、相対パスを使ってください。
Write file(ファイル書き込み)
Section titled “Write file(ファイル書き込み)”| 入力 | path(文字列)、content |
| 出力 | なし |
| 設定 | path、mode:replace(既定)または append |
Log(ログ)
Section titled “Log(ログ)”| 入力 | message(文字列)、data |
| 出力 | なし |
| 設定 | level:debug、info、warn、error |
追跡のための決め手となるボックスです。
実行ログとコマンドラインの出力に既定で表示されるのは、
このボックスの内容だけです。エンジンが出す記録は --all-logs を付けたときにしか加わりません。
言い換えると、Log で書いた内容が CI の成果物として残るものになります。
Assert(アサーション)
Section titled “Assert(アサーション)”| 入力 | a(観測した値)、b(期待する値)、message(文字列) |
| 出力 | then(成功)、else(失敗) |
| 設定 | operator、a、b、message |
使える演算子は次のとおりです。
eq · ne · lt · lte · gt · gte · contains · isString ·
isNumber · isBoolean · isArray · isObject · isNull · exists ·
isEmpty · matchesRegex · isOneOf · deepEquals · lengthEq ·
lengthGt · lengthLt
message フィールドは、ログの中で失敗の理由を分かるようにするためのものです。
「エラー」ではなく、何を期待していたのかを書いてください。
Throw(エラーの送出)
Section titled “Throw(エラーの送出)”| 入力 | message(文字列) |
| 出力 | なし — このボックスに done ポートはありません |
| 設定 | message |
意図的に実行を失敗させます。CI で終了コード 1 を返すのはこれです。
重要なアサーションの else 出力や、スキーマ検証の invalid に接続してください。