如何在 Apifox 中通过 CLI 运行包含云端数据库连接配置的测试场景

使用云端数据库连接配置的优点

没有云端数据库连接配置功能时,如果需要在 CLI 中运行一个带有数据库操作的测试场景,需要完成以下步骤才可正常运行:

  • 在产品界面上发现导出数据库连接配置入口,点击导出成文件;
  • 将导出的数据库连接配置文件放入 CLI 运行机器中;
  • 将此文件在机器中的路径复制;
  • 更改命令行中的选项内容,将路径改为实际值。例如:apifox run --access-token $APIFOX_ACCESS_TOKEN -t 123456 -e 123456 -n 1 -r html,cli --database-connection /Users/xxx/yyy/database-connections.json

前置任务较多,并且如果数据库连接配置有改动,则需要将上述步骤重新做一遍才可正常运行。实际使用体验是比较低效和繁琐的。如果使用了云端数据库连接配置,则可以完全省去导出配置文件、放入 CLI 执行机器中、命令行填写选项具体值这些工作,只需要给云端数据库连接配置中的变量设置好实际的值即可成功运行,让体验得以提升。以下是两种方法来使用云端数据库连接配置。

使用本地值 + 云端数据库连接配置

如果你需要运行的测试场景中,所有数据库连接使用的配置全部都是保存在云端的配置,则导出数据库连接配置的入口便不会出现(因为不需要了),CLI 运行时可以直接从云端拿到数据库连接配置中所需要的变量并根据变量替换规则去找到实际变量值,来发起连接。以下是具体示例:

  1. 在环境管理中,将数据库连接的实际值设置在了对应变量的本地值中。每个需要使用的环境都设置好。
  1. 确保你的数据库连接配置,除端口外完全使用了变量形式,这样就是保存成了云端数据库连接。
  1. 确保你要使用 CLI 运行的测试场景中,都使用的"云端数据库连接配置",即使用变量保存的配置。
  1. 进入 CI/CD 页,环境/全局变量选择"导出本地值使用",即可看到导出本地值的入口,点击导出。
  1. 导出文件中,你可以看到关于数据库连接配置使用到的环境变量值,你也可以在文件里手动更改这些值。将文件放入到 CLI 机器中,并复制文件路径。
  1. 在 CI/CD 页中,插入 Access Token,复制命令,并将变量文件的实际路径贴到选项值中。例如:apifox run --access-token $APIFOX_ACCESS_TOKEN -t 123456 -e 123456 -n 1 -r html,cli --variables /Users/xxx/yyy/pptest_variables.json

  2. 运行上述 CLI 命令,数据库连接正确,可以正常运行通过。

  1. 如果设置了打印结果,上传回端内的报告详情中也可以看到数据库连接的执行详情。
  • 本地值为了保证数据安全,仍然使用了本地文件存放实际数据库连接配置的方式。如果需要更改连接配置,可以手动在此文件中更改对应变量值。

  • 虽然数据库连接配置中的变量,使用远程值即可避免要导出本地值文件、命令行中多加一个选项的额外操作,也可以在 Apifox 客户端中直接更改远程值,但会有数据安全风险,❌ 不推荐使用。

  • 如果你在连接配置中全部或部分(除端口字段外)使用了明文,则仍需要导出配置文件并在命令中通过 --database-connection 来使用。❌ 不推荐这种用法。

使用 Vault 变量 + 云端数据库连接配置

如果你使用了:环境变量远程值 + Vault 变量的方式,维护好了云端的数据库连接,那么如果你想在 CLI 中使用这个已保存在云端的链接,则可以按照以下步骤来使用:

  1. 在环境管理中,将数据库连接的 Vault 变量设置在了对应变量的远程值中,本地值保持跟随远程值。每个需要使用的环境都设置好。
  1. 确保你的数据库连接配置,除端口外完全使用了变量形式,这样就是保存成了云端数据库连接。
  1. 确保你要使用 CLI 运行的测试场景中,都使用的"云端数据库连接配置",即使用变量保存的配置。
  1. 进入 CI/CD 页,环境/全局变量选择"使用远程值",根据自己的实际情况设置完成后,复制 CLI 命令。
  1. 在需要运行 CLI 的机器上,pipeline 或终端中,先输入 export APIFOX_VAULT_KEY=VALUE,来实际使用 Vault 变量。多个 Vault 变量使用空格分隔。具体例如下图:

不同的操作系统,语法可能有所不同。具体差异见下表:

Linux & MacOS Windows
设置变量使用 export,变量之间使用空格分隔 export APIFOX_VAULT_KEY1=VALUE1 APIFOX_VAULT_KEY2=VALUE2 APIFOX_VAULT_KEY3=VALUE3 设置变量使用 set,变量之间使用 & 分隔 set APIFOX_VAULT_KEY1=VALUE1&APIFOX_VAULT_KEY2=VALUE2&APIFOX_VAULT_KEY3=VALUE3
查询变量使用 echo $APIFOX_VAULT_KEY echo %APIFOX_VAULT_KEY1% 查询变量使用 echo %APIFOX_VAULT_KEY% echo $APIFOX_VAULT_KEY1
  1. 在下面贴上 CLI 命令,即可开始运行。
  1. 运行完成,即可在报告中看到数据库连接的结果,成功连接到了数据库并执行了操作。
  1. 如果设置了打印结果,上传回端内的报告详情中也可以看到数据库连接的执行详情。
  • 在使用 CLI 执行包含 Vault 变量的数据库连接之前,一定要写 export/set 来写入 Vault 变量的实际值,否则数据库连接会因为拿不到实际配置而连接失败;

  • 使用 export/set 方式写入的 Vault 变量实际值,仅在本次运行中生效,类似临时变量。下次运行仍然需要使用此方式重新写入一遍。

相关推荐
涡能增压发动积20 小时前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
Wenweno0o20 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨20 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz20 小时前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
swg32132120 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
从前慢丶20 小时前
前端交互规范(Web 端)
前端
tyung20 小时前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald20 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
CHU72903520 小时前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
GISer_Jing20 小时前
Page-agent MCP结构
前端·人工智能