---
title: "Import from Git V1（基于凭证的 Sync Link）"
language: "zh"
url: "https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git/"
markdown_url: "https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md"
translation: "https://docs.testany.io/en/docs/bulk-import-test-cases-from-git.md"
last_updated: "2026-04-21T15:45:20+08:00"
---

# 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](https://docs.testany.io/zh/docs/import-from-git-v1-vs-v2.md)。


`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

👉 **参考文档：**

- [创建仓库访问令牌 | Bitbucket Cloud](https://support.atlassian.com/bitbucket-cloud/docs/create-a-repository-access-token/)
- [创建个人访问令牌（Classic） | GitHub](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic)

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

👉 **参考文档：**[管理测试过程中的凭证](https://docs.testany.io/zh/docs/managing-test-credential.md)

### 2.2 **组织 Git 目录结构**

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

**关键考虑点：**

- 保持稳定、合理的目录结构，并将测试脚本存放在结构化的目录中。
- 了解目录变更对已建立同步关系的测试用例的影响：

  - 如果脚本文件被删除、重命名或重构，它们将会被自动从 `Import History` 中移除，并与 Testany 解除关联。
  - 此外，Testany 中对应已注册的测试用例也将被**自动删除**或**解除关联**（详见 [#3.2](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-2-更新同步关系记录-import-history)）。

📝 **建议：**为了避免不必要的删除和重新建立同步关系，请在首次创建前规划好目录结构。如需变更目录，应合理更新 `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](https://docs.testany.io/docs/images/zh/image-20250318-040135_9070f98f.png)

#### 3.1.2 **创建新的同步关系**

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

![image-20250318-105230.png](https://docs.testany.io/docs/images/zh/image-20250318-105230_744fcd34.png)

#### 3.1.3 **选择运行时**

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

![image-20250326-085344.png](https://docs.testany.io/docs/images/zh/image-20250326-085344_95bd7e53.png)

#### 3.1.4 **添加仓库信息**

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

- 仓库类型：Bitbucket 或 GitHub
- 仓库 URL：`https://bitbucket.org/workspace/repo.git` or `https://github.com/username/repo.git`
- 访问凭证：选择已配置的凭证（参考 [#2.1](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#2-1-创建-git-仓库凭证)）

![image-20250318-110212.png](https://docs.testany.io/docs/images/zh/image-20250318-110212_69c9c8e0.png)

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

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

- 分支（Branch）：选择包含稳定测试用例文件的分支
- 提交（Commit）：

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

![image-20250324-065202.png](https://docs.testany.io/docs/images/zh/image-20250324-065202_41e6432b.png)

- 根目录（Root Directory）：

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

![image-20250319-032630.png](https://docs.testany.io/docs/images/zh/image-20250319-032630_d590ee2c.png)


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


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

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

- 全选（Select all）：选择所有 Testany 支持的测试脚本文件（\*.py, \*.json, \*.jmx）

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

✔️ 提示：

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

![image-20250319-032819.png](https://docs.testany.io/docs/images/zh/image-20250319-032819_3fe29660.png)

提交后，系统会创建一条 `Import History`，用于保存这次同步关系配置，后续可继续访问和修改（参考 [#3.2.2](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-2-2-选择同步关系记录-import-history)）。

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

![image-20250319-033013.png](https://docs.testany.io/docs/images/zh/image-20250319-033013_f2511598.png)

#### 3.1.7 **验证待注册的测试用例**

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

![image-20250319-033447.png](https://docs.testany.io/docs/images/zh/image-20250319-033447_280392f7.png)

##### 3.1.7.1 **查看测试用例详情（可选步骤）**

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

如果需要调整字段值，可逐个编辑测试用例，或者在完成注册后操作批量更新（参考 [批量管理测试用例](https://docs.testany.io/zh/docs/bulk-manage-test-cases.md)）。

![image-20250325-073632.png](https://docs.testany.io/docs/images/zh/image-20250325-073632_4b1bd5f2.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](https://docs.testany.io/docs/images/zh/image-20250325-073212_f93004e3.png)

##### 3.1.7.2 **验证**

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

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

![image-20250319-071527.png](https://docs.testany.io/docs/images/zh/image-20250319-071527_6f17fb28.png)

#### 3.1.8. **批量注册测试用例**

点击 **“注册测试用例”**（`Register Test Cases`）按钮，完成测试用例注册。当测试用例成功注册后，系统会显示确认信息。

![image-20250319-072114.png](https://docs.testany.io/docs/images/zh/image-20250319-072114_5f3152cb.png)

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

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

![image-20250324-084703.png](https://docs.testany.io/docs/images/zh/image-20250324-084703_4d893651.png)

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

1. 标签（Labels）
2. 版本（Version）
3. 执行器（Executor）
4. 执行方式（Trigger path / trigger command）
5. 源代码（Source）：源文件的完整 URL，点击图标可在新标签页中打开该文件。
6. 删除按钮已禁用，如需删除测试用例，请参考 [#3.2.3](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-2-3-修改同步范围和文件选择) 或 [#3.3](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-3-删除同步关系记录-import-history)。

![image-20250324-084025.png](https://docs.testany.io/docs/images/zh/image-20250324-084025_2374d1da.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](https://docs.testany.io/docs/images/zh/image-20250318-040135_9070f98f.png)

#### 3.2.2 **选择同步关系记录（Import History）**

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

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

![image-20250319-113154.png](https://docs.testany.io/docs/images/zh/image-20250319-113154_1fd52241.png)

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

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

**重要说明：**

- 如果之前纳入同步关系的文件被**重命名或移动**，它将不再出现在向导中，原有同步关系会在本次提交后失效，对应已注册的测试用例会被 **删除或解除关联**（详见 [#3.3.2](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-3-2-选择并删除同步关系记录-import-history)）。
- 如果手动**取消选择**之前已纳入同步关系的文件，它将从这条 `Import History` 中移除，对应测试用例会在本次提交后 **被删除或解除关联**（详见 [#3.3.2](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-3-2-选择并删除同步关系记录-import-history)）。
- 对于“**最新提交**”类型的 `Import History`，上次不存在的文件（包括新增、重命名或恢复的文件）会显示在向导中，但默认未选中。只有显式选中后，它们才会被纳入同步关系并注册为测试用例。
- 对于“**指定提交**”类型的 `Import History`，在所选提交中不存在的文件（包括新增、重命名或恢复的文件）不会显示在向导中。

#### 3.2.4 **验证待更新的测试用例**

提交更新后，进入 `Validation` 页面，检查测试用例详情，并点击 **“验证”**（`Validate`）按钮继续。

如果需要调整字段值，可在此步骤中 **逐个编辑**，或在完成注册后操作 **批量更新**（参考 [批量管理测试用例](https://docs.testany.io/zh/docs/bulk-manage-test-cases.md)）。

|  | **测试用例字段** | **默认值** | **支持编辑？** |
| --- | --- | --- | --- |
| 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](https://docs.testany.io/docs/images/zh/image-20250318-040135_9070f98f.png)

#### 3.3.2 **选择并删除同步关系记录（Import History）**


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


**删除的影响：**

- 未关联测试流水线（Test Pipeline）的测试用例 → 将被永久删除。
- 已关联测试流水线的测试用例 → 不会被删除，但会与 Git 仓库解除关联。若需要删除这些测试用例，您需 **先从流水线中移除**，然后在删除这条同步关系记录后手动删除。

1. 在向导的第 1 步，展开 `Import History` 下拉菜单
2. 选择要删除的同步关系记录，点击其右侧的 **删除按钮** :trash: 进行删除（⚠️ **删除操作不会弹出确认提示，请谨慎操作！**）

![image-20250319-091539.png](https://docs.testany.io/docs/images/zh/image-20250319-091539_43242157.png)

## 5. **常见问题（FAQ）**


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


![image-20250324-074017.png](https://docs.testany.io/docs/images/zh/image-20250324-074017_cd6e13eb.png)

💡 请确保 Git URL 可访问，并已选择正确的凭证（参考 [#3.1.4](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-1-4-添加仓库信息)）。


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


![image-20250324-072544.png](https://docs.testany.io/docs/images/zh/image-20250324-072544_65caa4fe.png)

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

- 若要更新现有同步关系，请前往 **编辑 `Import History`**（参考 [#3.2](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-2-更新同步关系记录-import-history)）。
- 若需创建新的同步关系，请选择不同的 **分支或提交 ID 或根目录**（参考 [#3.1.5](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-1-5-选择分支-版本和同步范围)）。


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


💡 请检查这些文件是否在 Git 仓库中被**重命名或移动**。如果文件路径未更改，请确认在此次同步关系配置中选择了正确的 **分支 / 提交 ID / 根目录**（详见 [#3.1.5](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-1-5-选择分支-版本和同步范围) 或 [#3.2.2](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-2-2-选择同步关系记录-import-history)）。


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


![image-20250324-081509.png](https://docs.testany.io/docs/images/zh/image-20250324-081509_f69d525d.png)

💡 可能的原因包括：测试脚本在 Git 仓库中被删除、重命名或路径发生变化；或者在编辑 `Import History` 时，您手动取消选择了某个文件（详见 [#3.2.3](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-2-3-修改同步范围和文件选择)）。


> ❓ **为什么我无法删除某些测试用例？**


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

![image-20250324-082814.png](https://docs.testany.io/docs/images/zh/image-20250324-082814_821f168e.png)


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


💡 版本 `version` 字段在每次更新 `Import History` 时都会被自动更新（详见 [#3.2.4](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-2-4-验证待更新的测试用例)中的**关键说明**）。


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


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


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


💡 进入测试用例详情，光标悬停在 源码（'Source'） 上方，或直接点击其图标在新标签页中打开源文件（详见 [#3.1.9](https://docs.testany.io/zh/docs/bulk-import-test-cases-from-git.md#3-1-9-查看已建立同步关系的测试用例)）。

×

## 本页术语

- [Testany Secrets Service](https://docs.testany.io/zh/docs/glossary.md#testany-secrets-service)
- [测试用例 (Test Case)](https://docs.testany.io/zh/docs/glossary.md#test-case)
- [工作区 (Workspace)](https://docs.testany.io/zh/docs/glossary.md#workspace)
- [测试脚本 (Test Script)](https://docs.testany.io/zh/docs/glossary.md#test-script)
- [导入历史记录所有者 (Import History Owner)](https://docs.testany.io/zh/docs/glossary.md#import-history-owner)
- [测试用例库（Test Case Library）](https://docs.testany.io/zh/docs/glossary.md#test-case-library)
- [运行时 (Runtime)](https://docs.testany.io/zh/docs/glossary.md#runtime)
- [执行 (Execution)](https://docs.testany.io/zh/docs/glossary.md#execution)
- [环境 (Environment)](https://docs.testany.io/zh/docs/glossary.md#environment)
- [执行器（Executor）](https://docs.testany.io/zh/docs/glossary.md#executor)
- [用户 (User)](https://docs.testany.io/zh/docs/glossary.md#user)
- [导入历史记录 (Import History)](https://docs.testany.io/zh/docs/glossary.md#import-history)
- [测试流水线 (Test Pipeline)](https://docs.testany.io/zh/docs/glossary.md#test-pipeline)
- [路径（Path）](https://docs.testany.io/zh/docs/glossary.md#path)
