在 Apifox 中调试接口时,如果经常需要在请求参数、请求体中构造值、名称、地址或其他数据,这时“动态值”功能就派上用场了。动态值允许你在每次发送请求时,根据预定义的规则生成一个新值。这有助于简化调试过程,并确保每个请求包含唯一的数据。应用场景#
动态值在 API 测试中有广泛的应用。以下是一些典型示例:模拟真实数据: 你需要测试你的 API 如何处理不同类型的数据,例如各种格式的用户名、地址或电子邮件地址。使用动态值,你可以轻松生成大量类似于真实场景的测试数据,从而提高测试覆盖率。
生成唯一值: 在某些测试场景中,你需要确保数据的唯一性,例如生成订单号、用户 ID 或交易 ID。动态值可以根据时间戳或随机数生成唯一值,防止数据冲突并确保测试结果准确。
简化数据处理: 不需要为每次测试运行手动修改数据,使用动态值自动生成所需的数据。这可以节省你大量的时间和精力,提高测试效率。
使用入门#
2.
对于要动态化的参数,可以先删除原始值,然后单击值右侧的 魔棒 图标。 3.
点击 “数据生成器”,然后选择所需的动态值类型,例如名字
。 5.
点击 “发送”,你可以在 “实际请求” 中看到发送的实际名称。 旧版的动态值表达式是形如{% mock 'name' %}
的形式,这种使用方式后续将会废弃。建议你将 Apifox 升级到最新版本,并开始使用新版的动态值表达式。 在 JSON 请求体中使用动态值#
如果需要发送 JSON 请求体,并且 JSON 中的某些值需要动态生成,你也可以使用动态值。1.
找到一个带有 JSON 请求体的 POST 接口,并切换到运行选项卡。
2.
在 JSON 请求体中,单击 “自动生成 -> 仅生成字段名”,你将获得在 API 文档中定义的属性名称。 3.
将光标定位在正确的位置,单击 “动态值”,然后选择 “数据生成器”。 6.
单击 “发送”。你可以在 “实际请求” 部分中看到实际发送的 JSON 请求体。 7.
如果再次发送请求,动态值将生成新的 JSON 请求体。
在自定义表达式中使用动态值#
如果需要自定义一串信息 ,并且信息中有一些值需要动态生成,你还可以单击 “自定义表达式” 并输入动态值表达式。自定义表达式是遵循 Nunjucks 模板引擎语法的,你可以查阅他们的文档。1.
单击 “动态值” 图标,然后选择 “自定义表达式” 以打开输入框。 2.
通过拼接等方法输入 “动态值表达式” 来生成预期内容,你可以在下方实时预览生成的信息。 3.
单击 “插入”,你可以在参数值部分看到自定义表达式。 4.
这将生成 20 个随机用户数据,其中包含随机的名字和姓氏。 常 见的自定义表达式,你可以到动态值表达式模块查看更多详情。 手动插入动态值#
在需要插入动态值的输入字段中,你可以输入 {{$
来触发动态值列表。完整输入: 准确输入完整的动态值名称,例如 $timestamp
。
模糊匹配: 输入部分关键词,例如 time
,系统会自动过滤并显示匹配的动态值。
数据生成器#
使用数据生成器,你可以根据需要生成任何自定义数据。将鼠标悬停在参数输入字段上,单击出现的魔棒图标以打开 “数据生成器” 面板。按变量类型搜索: 通过选择动态值类型(例如日期、字符串、数字等) 快速定位所需的变量范围,提高搜索效率。 按关键词搜索: 在顶部的 “类型” 输入框中输入关键词(例如时间、字符串等),系统会自动过滤并显示匹配的动态值,方便你快速定位。 选择所需的动态值后,你可以通过以下操作对其进行进一步的细化,以满足更精细的数据生成需求:添加方法: 一些动态值支持附加方法,例如 {{$date.now}}
可以使用 addDays
方法添加天数以生成特定日期的数据。 添加处理函数: 所有动态值结果都可以使用函数进行处理,例如,使用 md5
函数对字 符串进行加密以生成满足安全要求的测试数据。 “表达式” 区域清楚地显示你当前选择的动态值类型、方法和函数,方便你进行检查和修改。“预览” 区域实时显示动态值生成的示例数据。单击 “预览” 区域末尾的 “刷新” 按钮可以生成新的示例数据,方便你查看数据生成的效果。单击 “预览” 区域中的示例数据可以自动复制内容,方便你将其粘贴到需要的位置。设置数据语言/国家#
Apifox 的动态值支持生成不同语言的示例数据,以满足你在多语言环境中的测试需求。操作方法如下:2.
对于 “日期” 和 “时间” 以外的动态值类型,单击动态值类型右上角的切换组件,然后选择相应的目标语言即可。 3.
对于 “日期” 和 “时间” 的动态值类型,你可以使用 format
和 locale
方法指定语言和格式。 强大的日期操作和格式化#
Apifox 不仅仅提供丰富的日期和时间动态值,它还致力于简化你的开发过程。以下是你可以轻松实现的一些功能:灵活的时间调整: 使用 add
方法,你可以轻松地根据当前时间添加或减去时间单位。例如,{{$date.now|addHours(-3)}}
将返回比当前时间早 3 小时的日期。 多样化的日期格式化: 使用 format
方法,你可以根据需要将日期格式化为不同的格式。例如,{{$date.now|formatISO}}
将根据 ISO 8601 标准格式化日期。 精确的时区控制: 通过设置 timezone
参数,你可以轻松控制日期的时区。例如,{{$date.now|format('yyyy-MM-dd HH:mm:ss',timezone='America/Port-au-Prince')}}
将返回 UTC+8:00
时区中当前时间对应的日期。 常见动态值#
为了帮助你更好地使用 Apifox 动态值,我们整理了完整的动态值清单和示例说明。你可以点击动态值表达式模块查阅,快速找到你需要的动态值及其使用方法。你也可以在 Apifox 内,将鼠标悬停在动态值表达式上,查看该动态值的简要说明和示例。