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

1. 概述

📝

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

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

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

主要优势:

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

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)。

×

还有疑问?

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