如何在 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。

相关推荐
lwx572806 分钟前
MySQL 性能调优完全指南:从硬件到 SQL,一篇吃透
后端
威迪斯特7 分钟前
GoFr框架:加速微服务开发的Go语言利器
开发语言·后端·微服务·架构·golang·命令行框架·gofr框架
用户57573033462412 分钟前
拒绝“首屏爆炸”:用 React 哨兵模式与懒加载打造丝滑列表
前端
大腕先生41 分钟前
通用分页超详细介绍(附带源代码解析&页面展示效果)
xml·java·linux·服务器·开发语言·前端·idea
睿智的海鸥1 小时前
Markdown 语法大全详解
开发语言·前端·javascript·css·html
zhenxin01221 小时前
GitSubmodule避坑指南:从入门到精通
spring boot·后端·spring
Highcharts.js1 小时前
用Highcharts如何动态向一个序列添加点
前端·javascript·react.js·highcharts
_Evan_Yao1 小时前
缓存金字塔上的红色闪电:Redis 如何借力 CPU 的 L1/L2/L3 与 TLB 飞驰
java·数据库·redis·后端·缓存
HookJames1 小时前
设计Section 09 · Cost & Lead Time Factors 的完整 Block Editor 操作步骤
前端
玖玖passion1 小时前
React 常用 Hooks 函数及使用方法完全指南(useState / useEffect / useRef / useContext / useCallback / useMemo / useReducer)
前端·javascript