在Apifox测试直接操作数据库操作的完整指南。
1. 配置数据库连接
需要在项目设置中建立数据库连接。Apifox支持主流的SQL和NoSQL数据库。
连接步骤:进入 项目设置 > 数据库连接,新建连接,选择数据库类型并填写主机、端口、用户名、密码等信息。
重点安全机制:为保障安全,数据库的连接信息仅保存在本地,不会同步至云端,团队成员需各自配置。对于生产等敏感环境,强烈建议通过SSH隧道建立连接。
多环境适配:可以在数据库连接配置中完全使用变量(如 {{db_host}}),这样在Apifox中切换测试环境、生产环境时,数据库操作会自动连接到对应环境的数据库。
2. 在测试流程中集成数据库操作
配置完成后,即可在接口测试的前置或后置操作中添加数据库步骤,途径是:在接口的运行(文档方式)或调试(调试方式)标签页中,找到后置操作区域,添加数据库操作。
主要应用情形如下:
前置操作:为接口准备测试数据或查询条件。
1. 准备数据:插入测试所需的基础数据。
2. 查询参数:从数据库查询出一个ID或状态值,作为后续接口的请求参数。
后置操作:证实接口对数据库的影响,并进行数据清理。
1. 证实结果:在增删改接口调用后,立即查询数据库,确定数据变更是不是符合预期。
2. 数据断言:将查询结果提取为变量,使用“断言”步骤进行准确检查。
3. 数据清理:在测试用例的最后,执行删除SQL,清除测试产生的数据,保证环境干净。
3. 数据提取和传递:实现测试联动
数据库操作的作用是将查询结果用于测试其他部分。两种重要的数据传递机制对比:
提取为变量 (先存后用):在数据库步骤中,使用JSONPath(如 $[0].id)将结果字段保存为临时、环境或全局变量。数据库查询结果必须用此方式提取后才能被引用。也适用于需要重复使用或跨流程使用的数据。引用方式通过 {{变量名}} 引用,如 {{user_id}}。应用如:pm.variables.get('user_id')(临时变量)。
动态值引用 (即用即取):在下游步骤的输入框中,通过 {{$.步骤ID.response.body}} 语法直接引用前置步骤的原始结果。主要用于直接引用前置接口响应中的数据。更为灵活直接。引用方式按照固定语法,如 {{$.2.response.body[0].name}}。应用如:pm.variables.get("$.2.response.body[0].name")。
4. 应用集成
在自动化测试/测试套件中使用:在自动化测试模块中,可以将数据库操作作为一个独立的步骤,和接口请求、循环、断言等步骤自由编排,创建复杂的测试流程。
通过命令行(CLI)执行:为实现不断集成(CI/CD),可以使用Apifox CLI运行包含数据库操作的测试情形。为简化流程,推荐使用云端数据库连接配置(连接信息使用变量),这样CLI可以直接从云端获取变量配置,无需在每台机器上导出配置文件。
测试工作流
完整测试用例工作流是:
前置操作(数据库):插入一条待测试的初始数据,并将其ID提取为变量 test_id。
接口请求:调用更新接口,请求参数中使用 {{test_id}}。
后置操作(数据库):执行 SELECT 查询,使用 WHERE id = {{test_id}},将查询结果提取为变量 updated_data。
后置操作(断言):对变量 updated_data 的字段值进行断言检查。
后置操作(数据库):执行 DELETE 语句,清理测试数据。