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

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

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

  • 在 CI/CD 产品界面上发现导出数据库连接配置入口,点击导出成文件;
  • 将导出的数据库连接配置文件放入 Runner 运行机器的指定挂载目录中。这个挂载目录是部署 Runner 时设置的;

虽然整体前置工作不多,但是涉及到 Runner 挂载目录配置,如果没有设置此目录还得重新部署 Runner,上手成本还是略高的。如果使用了云端数据库连接配置,则可以完全省去导出配置文件、设置挂载目录、放入 Runner 执行机器对应挂载目录中的这些工作,只需要给云端数据库连接配置中的变量设置好实际的值即可成功运行,让体验得以提升。以下是两种方法来使用云端数据库连接配置。

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

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

  1. 在环境管理中,将数据库连接的实际值设置在了对应变量的本地值中。每个需要使用的环境都设置好。
  1. 确保你的数据库连接配置,除端口外完全使用了变量形式,这样就是保存成了云端数据库连接。
  1. 确保你要使用 Runner 运行的测试场景中,都使用的"云端数据库连接配置",即使用变量保存的配置。
  1. 如果你是使用客户端直接手动触发 Runner 运行此测试场景,则需要指定一个 Runner,并设置环境/全局变量使用保存在 Runner 中的测试场景本地值。
  1. 点击出现的检查变量入口,将环境管理中的数据库连接相关环境变量和值复制填入保存在 Runner 中的测试场景本地值,可以使用批量编辑填入。
  1. 点击运行,收到 Runner 运行完成上传的报告,可以看到报告详情中包含数据库操作的信息。
  1. 如果你是使用定时任务来让 Runner 运行此测试场景,则需要在此测试场景的详情设置中,设置环境/全局变量值使用保存在 Runner 中的本地值,并选择一个合适的变量范围。
  1. 点击范围下出现的检查变量入口,将环境管理中的数据库连接相关环境变量和值复制填入保存在 Runner 中的测试场景本地值,可以使用批量编辑填入。
  1. 保存这个定时任务,等到定时触发或手动立即运行,收到 Runner 运行完成上传的报告,可以看到报告详情中包含数据库操作的信息。

虽然数据库连接配置中的变量,使用远程值即可避免要设置使用 Runner 保存的本地值、再次填写数据库连接配置的实际值并保存到 Runner 中的额外操作,也可以在 Apifox 客户端中直接更改远程值,但会有数据安全风险❌ 不推荐使用

如果你在连接配置中全部或部分(除端口字段外)使用了明文,则仍需要导出配置文件,并放入 Runner 所在机器的挂载目录中来使用。❌ 不推荐这种用法

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

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

  1. 在环境管理中,将数据库连接的 Vault 变量设置在了对应变量的远程值中,本地值保持跟随远程值。每个需要使用的环境都设置好。
  1. 确保你的数据库连接配置,除端口外完全使用了变量形式,这样就是保存成了云端数据库连接。
  1. 确保你要使用 CLI 运行的测试场景中,都使用的"云端数据库连接配置",即使用变量保存的配置。
  1. 在 Runner 部署时,使用 -e APIFOX_VAULT_vault=xxx 命令,即可在 Runner 中使用保存数据库连接配置的 Vault 变量。如果已经部署了,可以停止并删除容器后,进行重新部署。具体示例命令如下:
Shell 复制代码
docker pull registry.cn-hangzhou.aliyuncs.com/apifox/self-hosted-general-runner && \
docker run --name apifox_general_runner \
  -e TZ=Asia/Shanghai \
  -e SERVER_APP_BASE_URL=https://api.apifox.cn \
  -e TEAM_ID=123456 \
  -e RUNNER_ID=123456 \
  -e ACCESS_TOKEN=123456 \
  -e APIFOX_VAULT_testDbHost=127.0.0.1 \
  -e APIFOX_VAULT_testDbUsername=root \
  -e APIFOX_VAULT_testDbPwd=123456 \
  -e APIFOX_VAULT_prodDbHost=127.0.0.1 \
  -e APIFOX_VAULT_prodDbUsername=root \
  -e APIFOX_VAULT_testDbPwd=123456 \
  -p 80:4524 \
  -d registry.cn-hangzhou.aliyuncs.com/apifox/self-hosted-general-runner
  1. 如果你是使用客户端直接手动触发 Runner 运行此测试场景,则需要指定已设置好 Vault 变量的 Runner,并设置环境/全局变量使用远程值。
  1. 点击运行,收到 Runner 运行完成上传的报告,可以看到报告详情中包含数据库操作的信息。
  1. 如果你是使用定时任务来让 Runner 运行此测试场景,则需要在此测试场景的详情设置中,设置环境/全局变量值使用远程值。等到定时触发或手动立即运行,收到 Runner 运行完成上传的报告,可以看到报告详情中包含数据库操作的信息。

涉及到多环境数据库连接都要让 Runner 运行,则注意在使用 -e 注入 Vault 变量时需要把每个环境的数据都写上。

注意指定运行的 Runner,要是你在部署时使用了 -e 并注入 Vault 变量的同一个 Runner。

相关推荐
an__ya__几秒前
Vue数据响应式reactive
前端·javascript·vue.js
苦逼的搬砖工3 分钟前
Flutter UI Components:闲来无事,设计整理了这几年来使用的UI组件库
前端·flutter
玉衡子4 分钟前
MySQL基础架构全面解析
数据库·后端
想买Rolex和Supra的凯美瑞车主5 分钟前
Taro + Vite 开发中 fs.allow 配置问题分析与解决
前端
ruanCat6 分钟前
使用 vite 的 base 命令行参数来解决项目部署在 github page 的路径问题
前端·github
Codebee12 分钟前
使用Qoder 改造前端UI/UE升级改造实践:从传统界面到现代化体验的华丽蜕变
前端·人工智能
叫我詹躲躲16 分钟前
开发提速?Vue3模板隐藏技巧来了
前端·vue.js·ai编程
华仔啊16 分钟前
面试都被问懵了?CSS 的 flex:1 和 flex:auto 真不是一回事!90%的人都搞错了
前端·javascript
郭京京17 分钟前
goweb内置的 net/http 包
后端·go
dylan_QAQ18 分钟前
Java转Go全过程06-工程管理
java·后端·go