MySQL 是一个广受欢迎的关系型数据库管理系统,具有结构化数据存储、高性能、高可扩展性等特点。Apifox 提供了对 MySQL 数据库的连接与操作能力,支持在接口调用前或者调用后执行 SQL 语句。连接数据库#
1
在接口页面,点击接口中的 “前置/后置操作”,选择 “数据库操作”。
2
点击 “数据库连接” 下拉框,选择 “数据库连接管理”,再点击右上角的 “新建” 按钮。
3
在弹出的窗口中,选择
MySQL 数据库类型,填写相关连接信息,包括数据库地址、端口、用户名、密码和数据库名。你可以将相关的信息存在变量中,然后测试连接是否成功。
Apifox 推荐通过云端保存的方式集中管理数据库连接信息,并使用 Vault 变量保护敏感字段,建议避免在环境变量的 “远程值” 中填写数据库相关的明文内容。
操作数据库#
Apifox 支持标准 SQL 查询,但不支持存储过程这类复杂的 SQL 操作。查(SELECT )#
数据库查询步骤执行后会返回查询结果的结构化数据,格式是一个数组对象,即使只查询到一条记录也会被包装在数组中,例如:[
{
"id": 1,
"name": "jack"
}
]
增(INSERT)#
删(DELETE)#
改(UPDATE)#
在自动化测试中的使用#
自动化测试中支持数据库操作,测试步骤里的 SQL 语句支持使用 “动态值表达式” 以及 “变量”。使用动态值表达式#
可以在 SQL 中通过动态值读取前置步骤的接口响应,例如:使用变量#
在上游测试步骤中通过 “提取变量” 方式定义变量名(例如 products_id
):然后在下游测试步骤的 SQL 中通过{{变量名}}
引用:使用 ForEach 循环数据#
数据库操作也支持在测试步骤中使用 ForEach 循环实现批量操作。表达式里的数字4
是 ForEach 步骤的 ID,在实际使用时需要替换为你自己流程中 ForEach 步骤的 ID。这在进行批量插入、验证数据是否存在等场景中非常有用。常见问题#
目前最新的 MySQL 模块对 MySQL8 的
caching_sha2_password
加密方式支持不够完善,而
caching_sha2_password
是默认的加密方式。
需要指定mysql_native_password
模式修改 MySQL 账号密码,用其他工具连接 MySQL 后执行下面的 SQL 来修改对应账号的密码。