Import from Git V1(基于凭证的 Sync Link)

1. 概述

📝

本文档介绍的是 Import from Git V1,也就是基于凭证的 Sync Link 流程。V1 通过 Testany Secrets Service 管理 Git 仓库凭证,并在 Git 文件与 Testany 测试用例之间建立同步关系。

Import from Git V1 与 Import from Git V2 会并行提供。如果您希望使用 GitHub 账号授权、仓库范围管理或 Managed Import,请先阅读 Import from Git V1 与 V2。

Import from Git V1 用于批量建立 Git 脚本与 测试用例 的同步关系,并将选中的脚本注册为 Testany 测试用例。V1 不会把代码托管到 Testany 平台内部;测试执行时仍然直接从 Git 源端读取脚本。

主要优势:

  • 批量建立 Git 脚本与测试用例的同步关系,减少手动逐个注册
  • 让已注册测试用例持续指向 Git 中的对应脚本
  • 支持 Bitbucket 和 GitHub 仓库

2. 先决条件

2.1 创建 Git 仓库凭证

为了以只读模式访问 Git 资源,需要生成访问令牌(Access Token)并安全存储于以下位置:

  • Azure Key Vault
  • AWS Secrets Manager

👉 参考文档:

创建令牌后,请联系您所在的工作区的管理员在Testany中注册该凭证。

👉 参考文档:管理测试过程中的凭证

2.2 组织 Git 目录结构

合理的 Git 目录结构有助于提高测试用例管理的效率。

关键考虑点:

  • 保持稳定、合理的目录结构,并将测试脚本存放在结构化的目录中。

  • 了解目录变更对已建立同步关系的测试用例的影响:

    • 如果脚本文件被删除、重命名或重构,它们将会被自动从 Import History 中移除,并与 Testany 解除关联。
    • 此外,Testany 中对应已注册的测试用例也将被自动删除或解除关联(详见 #3.2)。

📝 **建议:**为了避免不必要的删除和重新建立同步关系,请在首次创建前规划好目录结构。如需变更目录,应合理更新 Import History,以最小化对测试用例的影响。

2.3 确定分支、版本和维护负责人

在开始 V1 向导前,请明确以下内容:

  • 分支(Branch): 选择一个稳定分支,以确保测试的可靠性。
  • 版本(Version): 同步关系可跟随 最新提交,也可固定到 指定提交 ID。
  • 维护负责人(Import History Owner): 负责维护这条 Import History 的人员。每个仓库都应有指定负责人,以确保后续同步关系和测试用例注册配置得到正确维护。

3. 步骤指南

3.1 创建新的同步关系记录

3.1.1 访问 Import from Git 界面

  1. 进入‘Test Case Library’ 页面
  2. 点击 ‘Register test case’ 旁的箭头 ‘↓’
  3. 选择 ‘Import from Git’

image-20250318-040135.png

3.1.2 创建新的同步关系

在向导的第 1 步,点击 Create new import,开始创建一条新的同步关系记录。

image-20250318-105230.png

3.1.3 选择运行时

在向导的第 2 步,展开运行时(Runtime)下拉列表,选择一个运行时,然后点击 “下一步”。如果某个运行时不可用,它将显示为灰色且不可选。

image-20250326-085344.png

3.1.4 添加仓库信息

在向导的第 3 步,填写以下信息并点击 “下一步”:

  • 仓库类型:Bitbucket 或 GitHub
  • 仓库 URL:https://bitbucket.org/workspace/repo.git or https://github.com/username/repo.git
  • 访问凭证:选择已配置的凭证(参考 #2.1)

image-20250318-110212.png

3.1.5 选择分支、版本和同步范围

在向导的第 4 步,提供以下信息并点击 “下一步”:

  • 分支(Branch):选择包含稳定测试用例文件的分支

  • 提交(Commit):

    • 最新提交:让这条同步关系跟随所选分支的最新测试脚本
    • 指定提交:让这条同步关系固定在某个特定提交版本的测试脚本上

image-20250324-065202.png

  • 根目录(Root Directory):

    • 将整个仓库纳入同步范围:请勿选择任何目录
    • 仅将特定目录纳入同步范围:选择一个目录,只处理该目录及其子目录内可运行的测试脚本

image-20250319-032630.png

📝

如果您原本希望将整个仓库纳入同步范围,却误选了某个目录,此选择无法在当前会话中撤销。请重新开始本次流程。

3.1.6 选择要建立同步关系的脚本

在向导的第 5 步,选择要纳入同步关系并注册为测试用例的脚本,然后点击 “提交”。

  • 全选(Select all):选择所有 Testany 支持的测试脚本文件(*.py, *.json, *.jmx)

  • 选择特定文件:从目录中手动勾选Testany支持的测试脚本文件

✔️ 提示:

  1. 所选文件将作为该测试用例的主执行脚本。在包含多个文件的测试结构中,仅需选择负责启动或控制测试流程的核心脚本,无需额外选取所有依赖或辅助文件。
  2. 每个被选中的文件都会与 Git 建立同步关系,并被注册为一个 Testany 测试用例。
  3. 选中脚本的总数量将显示在对话框左下角。

image-20250319-032819.png

提交后,系统会创建一条 Import History,用于保存这次同步关系配置,后续可继续访问和修改(参考 #3.2.2)。

系统会分析所选脚本并生成待注册的测试用例。这个过程可能需要一些时间,特别是当脚本数量较多时。

image-20250319-033013.png

3.1.7 验证待注册的测试用例

同步关系创建完成后,请在 Validation 页面查看测试用例详情,然后再进行批量注册。

image-20250319-033447.png

3.1.7.1 查看测试用例详情(可选步骤)

在 “验证”('Validation') 页面,点击 “测试用例列表” ('Test case list')面板中的某个测试用例,将展开 “测试用例详情” ( 'Test case details')面板,显示该用例的具体信息。

如果需要调整字段值,可逐个编辑测试用例,或者在完成注册后操作批量更新(参考 批量管理测试用例)。

image-20250325-073632.png

测试用例字段默认值支持编辑?
1名字(Name){父级目录}.{文件名}是
2描述(Description)”Import from {仓库地址}“是
3运行时(Runtime name)所选运行时否
4可见性(Visibility)全局可见是
5环境变量(Environment Variables)无是
6执行器(Executor)根据文件类型自动匹配: - pyres (*.py) - postman (*.json) - jmeter (*.jmx)是
7执行方式(Trigger command / trigger path)根据执行器决定: - pyres/python 使用 trigger_command: “python {所选文件相对根目录的相对路径}" - postman/jmeter 使用 trigger_path:{所选文件相对根目录的相对路径}是
8标签(Labels)所有相对于选定根目录的父级目录名会作为标签自动添加是
9版本(Version)1. 最新提交: 自动提取所选分支的所有标记(tag)中的最新标记作为版本号;若该分支无任何标记,则为空 2. 指定提交: 自动提取所选分支的标记(tag)作为版本号;若该分支无任何标记,则为空否
10创建者(Creator)创建这条同步关系并完成注册的 Testany用户否
11被测环境的名字(Environments)无是
12仓库地址(Repository address)所选仓库的完整地址否
13分支(Branch)所选分支名否
14提交号(Commit ID)1. 最新提交:empty 2. 指定提交:{指定提交的ID}否
ℹ️

executor 是后端严格匹配的字符串。当前后端支持的取值为:postman, playwright, python, pyres, jmeter。

image-20250325-073212.png

3.1.7.2 验证

在进行批量注册之前,所有待注册的测试用例都须通过 Testany 的验证。

点击 ‘Validate’ 按钮进行校验。如成功,系统将显示消息:’All test cases validated successfully!‘。

image-20250319-071527.png

3.1.8. 批量注册测试用例

点击 “注册测试用例”(Register Test Cases)按钮,完成测试用例注册。当测试用例成功注册后,系统会显示确认信息。

image-20250319-072114.png

3.1.9 查看已建立同步关系的测试用例

您可通过组合搜索查找测试用例,例如: 标签labels = {repository_name} & 创建开始时间created_from = {registration_date} & 所有者owner = {user_id}

image-20250324-084703.png

您也可以在测试用例详情中找到跟 Git 相关的信息(参考 #3.1.7.1)。

  1. 标签(Labels)
  2. 版本(Version)
  3. 执行器(Executor)
  4. 执行方式(Trigger path / trigger command)
  5. 源代码(Source):源文件的完整 URL,点击图标可在新标签页中打开该文件。
  6. 删除按钮已禁用,如需删除测试用例,请参考 #3.2.3 或 #3.3。

image-20250324-084025.png

3.2 更新同步关系记录(Import History)

3.2.1 访问 Import from Git 界面

  1. 进入‘Test Case Library’ 页面
  2. 点击 ‘Register test case’ 旁的箭头 ‘↓’
  3. 选择 ‘Import from Git’

image-20250318-040135.png

3.2.2 选择同步关系记录(Import History)

  1. 在向导的第 1 步,展开 Import History 下拉菜单
  2. 选择要维护的同步关系记录

✔️ 提示:Import History 的命名规则为 “{所选根目录} of {分支}@{提交ID} in {仓库名称} from {仓库类型}“

image-20250319-113154.png

3.2.3 修改同步范围和文件选择

在向导的第 5 步,之前已纳入同步关系的文件会默认被选中。如需调整文件选择,修改后点击 “提交” 以继续。

重要说明:

  • 如果之前纳入同步关系的文件被重命名或移动,它将不再出现在向导中,原有同步关系会在本次提交后失效,对应已注册的测试用例会被 删除或解除关联(详见 #3.3.2)。
  • 如果手动取消选择之前已纳入同步关系的文件,它将从这条 Import History 中移除,对应测试用例会在本次提交后 被删除或解除关联(详见 #3.3.2)。
  • 对于“最新提交”类型的 Import History,上次不存在的文件(包括新增、重命名或恢复的文件)会显示在向导中,但默认未选中。只有显式选中后,它们才会被纳入同步关系并注册为测试用例。
  • 对于“指定提交”类型的 Import History,在所选提交中不存在的文件(包括新增、重命名或恢复的文件)不会显示在向导中。

3.2.4 验证待更新的测试用例

提交更新后,进入 Validation 页面,检查测试用例详情,并点击 “验证”(Validate)按钮继续。

如果需要调整字段值,可在此步骤中 逐个编辑,或在完成注册后操作 批量更新(参考 批量管理测试用例)。

测试用例字段默认值支持编辑?
1名字(Name)最新值是
2描述(Description)最新值是
3运行时(Runtime name)最新值否
4可见性(Visibility)最新值是
5环境变量(Environment Variables)最新值是
6执行器(Executor)最新值是
7执行方式(Trigger command / trigger path)最新值是
8标签(Labels)最新值是
9版本(Version)1. 最新提交: 自动提取所选分支的所有标记(tag)中的最新标记作为版本号;若该分支无任何标记,则为空 2. 指定提交: 自动提取所选分支的标记(tag)作为版本号;若该分支无任何标记,则为空否
10创建者(Creator)最新值否
11被测环境的名字(Environments)最新值是
12仓库地址(Repository address)最新值否
13分支(Branch)最新值否
14提交号(Commit ID)最新值否

注意事项:

  • 所有已纳入同步关系的文件,除版本(version)外,其最新值都会被预加载,并不会被覆盖,除非在此步骤中被人为修改。

  • 版本(version)字段在每次更新 Import History 时都会被更新。

3.2.5. 提交更新并批量注册测试用例

点击 “注册测试用例”(Register Test Cases)按钮,提交这次同步关系更新。成功注册后,系统将显示确认消息。

3.3 删除同步关系记录(Import History)

3.3.1 访问 Import from Git 界面

  1. 进入‘Test Case Library’ 页面
  2. 点击 ‘Register test case’ 旁的箭头 ‘↓’
  3. 选择 ‘Import from Git’

image-20250318-040135.png

3.3.2 选择并删除同步关系记录(Import History)

📝

在删除同步关系记录之前,请仔细评估该操作对已注册测试用例的影响。

删除的影响:

  • 未关联测试流水线(Test Pipeline)的测试用例 → 将被永久删除。
  • 已关联测试流水线的测试用例 → 不会被删除,但会与 Git 仓库解除关联。若需要删除这些测试用例,您需 先从流水线中移除,然后在删除这条同步关系记录后手动删除。
  1. 在向导的第 1 步,展开 Import History 下拉菜单
  2. 选择要删除的同步关系记录,点击其右侧的 删除按钮 :trash: 进行删除(⚠️ 删除操作不会弹出确认提示,请谨慎操作!)

image-20250319-091539.png

5. 常见问题(FAQ)

❓ 为什么在创建新的同步关系记录时,我在第 3 步看到“无法获取分支,请检查仓库地址和访问令牌”('Failed to fetch branches, please check the repository address and access token')错误?

image-20250324-074017.png

💡 请确保 Git URL 可访问,并已选择正确的凭证(参考 #3.1.4)。

❓ 为什么在创建新的同步关系记录时,我看到“导入历史已存在,请选择该历史继续”('The import history already exists, please select the history to continue')错误?

image-20250324-072544.png

💡 您正在尝试重复创建同一条同步关系记录,也就是相同的 仓库 & 分支 & 提交 ID & 根目录 组合。

  • 若要更新现有同步关系,请前往 编辑 Import History(参考 #3.2)。
  • 若需创建新的同步关系,请选择不同的 分支或提交 ID 或根目录(参考 #3.1.5)。

❓ 为什么我在 V1 向导中看不到某些测试用例?

💡 请检查这些文件是否在 Git 仓库中被重命名或移动。如果文件路径未更改,请确认在此次同步关系配置中选择了正确的 分支 / 提交 ID / 根目录(详见 #3.1.5 或 #3.2.2)。

❓ 为什么 Testany 提示测试文件被删除?

image-20250324-081509.png

💡 可能的原因包括:测试脚本在 Git 仓库中被删除、重命名或路径发生变化;或者在编辑 Import History 时,您手动取消选择了某个文件(详见 #3.2.3)。

❓ 为什么我无法删除某些测试用例?

💡 您可以删除:直接上传(Direct-upload)且您是其所有者的测试用例,或由 Git 同步关系创建且操作者为您的测试用例(详见下方✔️适用场景)。

image-20250324-082814.png

❓ 为什么 Import History 被修改后,我的测试用例版本 version 发生了变化?

💡 版本 version 字段在每次更新 Import History 时都会被自动更新(详见 #3.2.4中的关键说明)。

❓ V1 会把代码导入到 Testany 平台内部吗?

💡 不会。V1 建立的是基于凭证的 Sync Link。Testany 会保存同步关系、测试用例元数据和 Import History,但测试执行时仍然直接从 Git 源端读取脚本。若您需要平台托管代码副本,请改用 V2 的 Managed Import。

❓ 如何追踪测试用例来源的 Git 仓库及提交记录?

💡 进入测试用例详情,光标悬停在 源码('Source') 上方,或直接点击其图标在新标签页中打开源文件(详见 #3.1.9)。

×

还有疑问?

我们的团队随时为您服务。欢迎联系我们,我们会尽快回复。