如何在 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 变量实际值,仅在本次运行中生效,类似临时变量。下次运行仍然需要使用此方式重新写入一遍。

相关推荐
深蓝AI10 分钟前
12000 名工程师的高盛,只用四个月就收回了交易员的 AI 编程权限
人工智能·程序员
wangruofeng4 小时前
AI Models 1.1.0 发布,查大模型价格、对比模型和找 API 地址
前端·aigc·ai编程
脚本自动化开发4 小时前
玩影之刃零,两张四千元级显卡怎么挑
后端
wangruofeng4 小时前
给前端开发者的 100 个设计参考网站
前端·设计
深蓝AI6 小时前
为什么 agent 的 demo 都很惊艳,上了生产就不靠谱
人工智能·程序员
星栈7 小时前
视频即代码,Remotion 能做什么、不能做什么
前端·音视频开发
广州华水科技7 小时前
单北斗GNSS位移监测系统的应用与技术解析
前端
深蓝AI7 小时前
一个项目五个 AI 同时干活,Claude Code 怎么让它们不互相打架
人工智能·程序员
用户47949283569158 小时前
从一句话或代码仓到可交互 HTML:开源 Agent 画图技能 Archify v3.2 实测与选型边界
前端·后端·面试
努力的小雨9 小时前
别再复制日志给AI了!我让Codex自己去观测云查报错
后端