跳转到内容

实用工具

输入minmax(数值)、seed
输出result
op返回
int介于 minmax 之间的一个整数
float一个浮点数
string一个长度为 length 的字符串
boolean一个布尔值
pickitems 中抽取的一个元素

seed 字段(一个数字或一个字符串)让抽取变得确定: 正是它使得数据既多样、测试又可重现。 这也是它与 {{$random…}} 辅助函数的本质区别 —— 后者永远无法重现。

输入valueschema(字符串)
输出validinvaliderrors
配置schema —— 一个 JSON Schema,可用 draft-07、2019-09 或 2020-12

要确认某个响应符合它的契约,这是首选工具。把 errors 接到一个 Log 上: 输出会逐条列出违规之处,让 CI 的一次失败直接就能拿来分析。

HTTP 请求 ──response[body]──► 模式校验
├─ valid ──► (后续)
├─ invalid ──► Throw
└─ errors ──► Log
输入path(字符串)
输出content(字符串)
配置path —— 绝对路径,或相对于已打开的 .restorm 文件的路径

要让场景在您的机器和 CI 之间保持可移植,就该用相对路径。

输入path(字符串)、content
输出
配置pathmodereplace(默认)或 append
输入message(字符串)、data
输出
配置leveldebuginfowarnerror

它就是那个用来留痕的节点。只有它的条目会默认显示在执行日志里,以及 命令行的输出中 —— 引擎自身的条目只在加上 --all-logs 时才会一并出现。

换句话说:您用 Log 写下的内容,就是您会在 CI 产物里找到的内容。

输入a(观察到的值)、b(期待的值)、message(字符串)
输出then(成功)、else(失败)
配置operatorabmessage

可用的运算符:

eq · ne · lt · lte · gt · gte · contains · isString · isNumber · isBoolean · isArray · isObject · isNull · exists · isEmpty · matchesRegex · isOneOf · deepEquals · lengthEq · lengthGt · lengthLt

message 字段决定了失败在日志里是否说得清楚:请写上当时期待的是什么,而不是“出错了”。

输入message(字符串)
输出无 —— 这个节点没有 done 端口
配置message

刻意让执行失败。正是它在 CI 中给出退出码 1:把它接到关键断言的 else 输出上, 或者接到一次模式校验的 invalid 上。