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

使用云端数据库连接配置的优点
没有云端数据库连接配置功能时,如果需要在 Runner 中运行一个带有数据库操作的测试场景,需要完成以下步骤才可正常运行:
- 在 CI/CD 产品界面上发现导出数据库连接配置入口,点击导出成文件;

- 将导出的数据库连接配置文件放入 Runner 运行机器的指定挂载目录中。这个挂载目录是部署 Runner 时设置的;

虽然整体前置工作不多,但是涉及到 Runner 挂载目录配置,如果没有设置此目录还得重新部署 Runner,上手成本还是略高的。如果使用了云端数据库连接配置,则可以完全省去导出配置文件、设置挂载目录、放入 Runner 执行机器对应挂载目录中的这些工作,只需要给云端数据库连接配置中的变量设置好实际的值即可成功运行,让体验得以提升。以下是两种方法来使用云端数据库连接配置。
使用本地值 + 云端数据库连接配置
如果你需要运行的测试场景中,所有数据库连接使用的配置全部都是保存在云端的配置,则 Runner 运行时可以直接从云端拿到数据库连接配置中所需要的变量,并根据变量替换规则去找到实际变量值,来发起连接。以下是具体示例:
1. 在环境管理中,将数据库连接的实际值设置在了对应变量的本地值中。每个需要使用的环境都设置好。

2. 确保你的数据库连接配置,除端口外完全使用了变量形式,这样就是保存成了云端数据库连接。

3. 确保你要使用 Runner 运行的测试场景中,都使用的“云端数据库连接配置”,即使用变量保存的配置。

4. 如果你是使用客户端直接手动触发 Runner 运行此测试场景,则需要指定一个 Runner,并设置环境/全局变量使用保存在 Runner 中的测试场景本地值。

5. 点击出现的检查变量入口,将环境管理中的数据库连接相关环境变量和值复制填入保存在 Runner 中的测试场景本地值,可以使用批量编辑填入。

6. 点击运行,收到 Runner 运行完成上传的报告,可以看到报告详情中包含数据库操作的信息。

7. 如果你是使用定时任务来让 Runner 运行此测试场景,则需要在此测试场景的详情设置中,设置环境/全局变量值使用保存在 Runner 中的本地值,并选择一个合适的变量范围。

8. 点击范围下出现的检查变量入口,将环境管理中的数据库连接相关环境变量和值复制填入保存在 Runner 中的测试场景本地值,可以使用批量编辑填入。

9. 保存这个定时任务,等到定时触发或手动立即运行,收到 Runner 运行完成上传的报告,可以看到报告详情中包含数据库操作的信息。

使用 Vault 变量 + 云端数据库连接配置
如果你使用了:环境变量远程值 + Vault 变量的方式,维护好了云端的数据库连接,那么如果你想在 Runner 中使用这个已保存在云端的链接,则可以按照以下步骤来使用:
1. 在环境管理中,将数据库连接的 Vault 变量设置在了对应变量的远程值中,本地值保持跟随远程值。每个需要使用的环境都设置好。

2. 确保你的数据库连接配置,除端口外完全使用了变量形式,这样就是保存成了云端数据库连接。

3. 确保你要使用 CLI 运行的测试场景中,都使用的“云端数据库连接配置”,即使用变量保存的配置。

4. 在 Runner 部署时,使用 -e APIFOX_VAULT_vault=xxx
命令,即可在 Runner 中使用保存数据库连接配置的 Vault 变量。如果已经部署了,可以停止并删除容器后,进行重新部署。具体示例命令如下:
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
5. 如果你是使用客户端直接手动触发 Runner 运行此测试场景,则需要指定已设置好 Vault 变量的 Runner,并设置环境/全局变量使用远程值。

6. 点击运行,收到 Runner 运行完成上传的报告,可以看到报告详情中包含数据库操作的信息。

7. 如果你是使用定时任务来让 Runner 运行此测试场景,则需要在此测试场景的详情设置中,设置环境/全局变量值使用远程值。等到定时触发或手动立即运行,收到 Runner 运行完成上传的报告,可以看到报告详情中包含数据库操作的信息。

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

