测试数据终于不用到处复制了,Apifox 自动化测试新增「共用测试数据」

在编排自动化测试场景的时候,有一个问题其实很容易遇到。

不同的场景用例,往往会用到同一批测试数据。

比较常见的做法,就是把这份数据复制一份,然后粘贴到其他场景用例里,每个场景各维护一份。刚开始场景不多的时候,这种方式其实也没什么问题。

但随着自动化测试的场景越来越多,同一份测试数据就会被复制到很多地方。

一旦测试数据需要调整,就得逐个场景去修改。场景少还好,场景一多就很难保证每个地方都能同步更新,时间久了也很容易出现数据不一致的情况。

其实在不少项目里,自动化测试维护成本变高,往往就是从这里开始的。

针对这种情况,我们在 Apifox 的自动化测试里增加了一种新的数据管理方式,叫做「共用测试数据」。

通过共用测试数据,可以把原本分散在各个场景里的测试数据统一管理,多个场景用例都可以直接引用。

当测试数据需要调整时,只需要修改这一处地方,所有引用它的场景用例都会自动同步更新。

共用测试数据支持自动批量生成数据,只需要设置生成规则,就可以一次生成大量测试数据,不需要手动逐条录入。

如果已经有现成的数据,也可以直接导入,比如 CSV 或 JSON 文件。同时也支持从数据库读取数据,直接作为测试数据使用。

下面我们详细看看这个功能具体怎么用,在开始之前,请先将 Apifox 更新到最新版。

创建共用测试数据

Apifox 支持两种方式创建「共用测试数据」,以适应不同的使用场景。

静态测试数据

静态数据适用于那些内容相对固定的场景,比如一组固定的测试账号或地区编码。

进入 Apifox 项目,在左侧菜单栏中点击「自动化测试」,然后切换到「测试数据」标签页。点击该标签页上的 ...,选择「新建测试数据(静态)」。

进入编辑界面后,可以手动添加数据列(变量),也可以直接导入 CSVJSON 格式的文件。

测试数据的「变量名」设置好后,可以根据规则批量生成数据,表格的每一列都会成为一个可在后续测试中引用的变量。

编辑完成后,点击保存即可完成静态共用测试数据的创建。

数据库连接测试数据

对于需要从真实数据库中获取数据的场景,比如从用户表中随机抽取一批测试用户进行测试,使用数据库连接的方式会更加高效。

同样在「测试数据」标签页,点击 ...,选择「新建测试数据(数据库连接)」。

如果项目尚未配置数据库连接,系统会引导你进行设置。选择一个已有的数据库连接,或创建一个新的连接。

配置好「数据库连接」后,你需要在 SQL 编辑区域中编写查询语句,用于从数据库中提取所需的测试数据。这里的 SQL 语句支持使用 Apifox 的环境变量。一个简单的 SQL 查询命令如下:

SQL 复制代码
SELECT id, name, email FROM pets LIMIT 0, 10;

点击「保存」,Apifox 会执行该 SQL 语句,并将查询结果作为测试数据保存下来。

需要注意,通过这种方式获取的数据在保存后就变成了静态数据。它不会随着数据库内源数据的变化而自动更新。如果需要同步最新的数据,可以进入该测试数据的编辑页面,手动点击「刷新」按钮来重新获取。

在场景用例中使用共用测试数据

数据创建完成后,就可以在自动化测试的「场景用例」中进行引用了。

打开或新建一个场景用例,在右侧的「运行配置」面板中,找到「测试数据」这一项。

点击下拉框,此时列表中会显示出所有已创建的「共用测试数据」,选择你需要的那个数据集。

引用成功后,这份数据集中的所有列名都会成为当前场景用例可用的变量。在用例的任何步骤中,比如接口请求的 URL、参数或请求体中,都可以通过 \{\{变量名\}\} 的语法来引用这些数据。

当运行此场景用例时,如果共用测试数据包含多行记录,Apifox 会为每一行数据都完整地执行一次测试流程,这也就是数据驱动测试的实现方式。

管理你的共用测试数据

随着项目的推进,对共用测试数据的管理也变得重要起来。

编辑与维护

在「测试数据」列表中,点击任意数据名称即可进入编辑界面。对于静态数据,你可以自由地增删改查数据行和数据列。

对于通过数据库连接创建的数据,其内容是只读的,不能直接编辑。但可以更改数据库连接配置,或者调整 SQL 查询语句,然后重新获取数据。

按环境配置数据

共用测试数据支持按环境配置,你可以为开发环境、测试环境、生产环境等分别维护不同的数据集。

当你在运行测试用例时切换环境,Apifox 会自动加载并使用对应环境下的数据集,无需手动更改。


到这里,「共用测试数据」这个功能的基本用法就介绍完了。

如果你的项目里已经有不少自动化测试场景,不妨试试把一些重复使用的数据整理成「共用测试数据」,整体维护起来会轻松不少。

如果在使用过程中遇到不太清楚的地方,也可以查看 Apifox 的 帮助文档,里面有更完整的功能说明和配置示例。有任何问题欢迎在 Apifox 用户群与我们交流沟通。

同时,Apifox 提供企业私有化部署版本,通过本地化部署、客制化服务,协助企业进一步提升研发团队效能。

相关推荐
小小小小宇2 小时前
Mac龙虾保姆级完整部署指南
前端
Gardener1722 小时前
OpenStack Instance ID 映射机制详解
后端
睡不着的可乐2 小时前
vue2 和 vue3自定义指令有什么区别,都是怎么实现和使用一个指令
前端·vue.js
闲来没事抠鼻屎2 小时前
Web打印插件实战:轻量化JS打印方案vue-print-designer落地指南
前端
孙凯亮2 小时前
从 SSR 踩坑到 CSR 封神:Nuxt4 全流程终极实战
前端
想努力找到前端实习的呆呆鸟2 小时前
网易云桌面端--精选歌单布局思路记录
前端·javascript·vue.js
Flywith242 小时前
【每日一技】Raycast 实现 scrcpy 的快捷显示隐藏
android·前端
无责任此方_修行中3 小时前
拒绝 AI 焦虑!一个普通程序员的真实 AI 工作流(附成本账单)
后端·程序员·ai编程