介绍动态变量:即时生成真实的测试数据

发布: (2026年3月9日 GMT+8 15:32)
4 分钟阅读
原文: Dev.to

Source: Dev.to

什么是动态变量?

动态变量是特殊的占位符,在运行时会解析为自动生成的值。它们使用 $ 前缀,并通过以下模板语法访问:

{{$variableName}}

每次请求执行时,变量都会产生一个新值。

示例

  • {{$randomUUID}} → 生成一个新的 UUID
  • {{$timestamp}} → 当前 UNIX 时间戳
  • {{$randomInt}} → 随机整数
  • {{$guid}} → GUID 样式标识符

关键区别在于:这些变量不需要你自行定义,属于内置并随时可用。

为什么生成测试数据很痛苦

开发者和 QA 团队经常会遇到:

  • 重复使用的邮箱或用户 ID 导致注册和唯一性检查失败。
  • 为每次运行手动编辑负载,既慢又容易出错。
  • 当数据库中已存在数据时,测试会失效。

动态变量通过为每次执行生成全新的、真实的输入,消除了这些问题。

在模板中使用动态变量

动态变量可以放在请求的任何位置:URL、查询参数、请求头或请求体。

示例请求体

{
  "id": "{{$randomUUID}}",
  "email": "{{$randomEmail}}",
  "createdAt": "{{$timestamp}}"
}

每次执行都会生成一个唯一的用户配置文件。

在脚本中使用动态变量

在脚本中也可以通过 rq 对象访问动态变量。

const userId = rq.$randomUUID();
const timestamp = rq.$timestamp();
const email = rq.$randomEmail();

注意,它们在脚本中像函数一样调用。

变量参数

某些动态变量支持可选参数,以自定义输出。

模板语法

{{$variableName arg1 arg2}}

带参数的示例

{
  "id": "{{$randomAlphaNumeric 10}}",
  "email": "{{$randomEmail 'John' 'Doe'}}",
  "age": "{{$randomInt 18 65}}",
  "price": "{{$randomPrice 10 100 2 '$'}}"
}

这让你能够控制:

  • 随机字符串的长度
  • 基于姓名的邮箱生成
  • 整数范围
  • 价格范围及格式化

无需编写额外逻辑,即可获得灵活性。

实际使用场景

动态变量在各种工作流中大放异彩:

  • 注册流程: 为每次测试运行创建唯一用户,无需清理数据库。
  • OTP/时间戳测试: 为认证流程生成有效的基于时间的负载。
  • 负载测试: 提供随机化输入,以发现边缘案例错误。
  • CI/CD 流水线: 运行可靠、可重复的测试,而不依赖预先填充的数据。
  • 模拟服务器: 为前端开发返回真实、可变的响应。

这些可以把脆弱的测试转变为可靠的检查,并加快开发反馈循环。

0 浏览
Back to Blog

相关文章

阅读更多 »