---
title: "管理测试用例"
language: "zh"
url: "https://docs.testany.io/zh/docs/managing-test-case/"
markdown_url: "https://docs.testany.io/zh/docs/managing-test-case.md"
translation: "https://docs.testany.io/en/docs/managing-test-case.md"
last_updated: "2026-04-21T15:45:20+08:00"
---

# 管理测试用例

## 概述

测试用例是Testany平台的基石，使用户能够定义特定场景来测试他们的应用程序。每个用户，无论其角色如何，都可以注册和管理自己的测试用例。默认情况下，只有测试用例的所有者才能更新或删除它。全局管理员也有权编辑和删除任何测试用例。其他用户只能查看。如有需要，所有者或全局管理员可以将所有权转移给其他用户（参见下方[转移所有权](#转移所有权)）。

[视频](https://customer-en3hmhs3okg5hi37.cloudflarestream.com/f23830dc3d9f83cc490d35f3a032fc18/watch)

### 理解合格的测试用例

一个合格的测试用例应满足以下标准：

1. **明确的目标**：应有明确的目的并针对应用程序的特定方面。
2. **可重复性**：在相同条件下执行时必须一致，产生相同的结果。
3. **独立性**：应是自包含的，不依赖于其他测试用例来运行。
4. **可测量的结果**：结果应是可量化和可测量的，以确定成功或失败。
5. **符合平台标准**：必须遵循Testany平台定义的特定指南和格式。

## Testany平台上的测试用例

### 平台支持的测试框架

Testany 平台的一个关键特性是支持多种测试框架，并能够在单个测试管道中从不同的测试框架组装测试用例。目前，平台支持以下测试执行器：**Postman**、**Playwright**、**Python Unit Test**、**PyRes** 和 **JMeter**。Maven 和 Gradle 执行器已不再支持。

### 理解Testany平台上的测试用例概念

#### 定义

> 在我们的产品中，“测试用例包”指的是一个测试用例的捆绑单元，包含测试用例元数据和测试用例代码。测试用例元数据提供关于测试用例的重要背景和信息，如作者、状态、优先级、版本和其他必要参数。测试用例代码是执行测试步骤的可执行脚本。通过将元数据和代码打包在一起，用户可以更有效地在Testany平台上注册和管理测试用例，并根据不同的测试场景调整参数。

#### 1. 测试用例代码文件

测试用例代码文件包含定义测试的实际代码。它可以根据创建者选择的测试框架而有所不同。

**关键特性**：

- **框架依赖**：文件类型和结构可能因所选测试框架而异。
- **逻辑定义**：包含执行测试的逐步说明。
- **语言支持**：用所选框架支持的编程语言编写。

#### 2. 测试用例包文件

测试用例包文件是一个压缩文件，封装了测试用例代码文件。

**关键特性**：

- **压缩格式**：以压缩文件形式捆绑。
- **包含代码文件**：将代码文件组合成一个包。
- **可移植性**：在平台内轻松共享和注册测试用例。
- **完整性**：确保代码和元文件作为一个统一实体一致链接和管理。

### **理解 Testany 平台上的用例可见性概念**

在 Testany 平台中，用例可见性是指应用于用例的访问控制级别，用于确定谁可以查看和操作用例。用例可见性有两种类型：**全局可见性** 和 **工作区限制可见性**。

- **全局可见性**：用例对该租户中的所有活跃用户可见。
- **工作区限制可见性**：用例仅对其所属工作区的成员可见。

为进一步说明“工作区限制可见性”，以下是一个示例：

- 用户在以下工作区中具有成员权限：**WKS, ABC, FTT**，在以下工作区中具有管理员权限：**ACT, CPE**。
- 测试用例 1 关联的工作区为：**ACT, WKS, FTT**。
- 测试用例 2 关联的工作区为：**FTT, ABD**。
- 测试用例 3 关联的工作区为：**ABD, CPE**。
- 测试用例 4 关联的工作区为：**ABD, LBI**。

在这种情况下：

1. 用户可以查看测试用例 1，因为其工作区成员权限（**WKS, FTT**）与用例关联的工作区（**WKS, FTT**）有重叠。
2. 用户可以查看测试用例 2，因为其工作区成员权限（**FTT**）与用例关联的工作区（**FTT**）有重叠。
3. 用户**无法**查看测试用例 3，因为其工作区成员权限与用例关联的工作区（**ABD, CPE**）没有重叠。
4. 用户**无法**查看测试用例 4，因为其工作区权限与用例关联的工作区（**ABD, LBI**）没有重叠。

### 注册测试用例

#### 分步骤指引

##### 1. 登录 Testany 平台

登录到平台，并点击页面顶部的“Test case library” 按钮。

##### 2. 点击 “Register Test Case” 按钮

![image-20250423-083952.png](https://docs.testany.io/docs/images/zh/image-20250423-083952_75412229.png)

##### 3. 填写表单：

当“注册新测试用例”弹窗出现后，请按步骤逐项填写表单：

**3-1: Name:** “名称”是测试用例的重要属性，并将在Testany平台中频繁使用。为了提高效率和方便您与同事的协作，请确保名称的正确性、完整性和简洁性。

![image-20250120-031138.png](https://docs.testany.io/docs/images/zh/image-20250120-031138_3dcaa976.png)

**3-2: Description:** 您可以在“描述”中更详细地描述您的测试用例，这将使其他用户更容易使用它。*在“描述”中列出测试对象、前提条件、输入数据、执行步骤以及预期结果等元素，将极大地方便其他用户。*

![image-20250120-031223.png](https://docs.testany.io/docs/images/zh/image-20250120-031223_04a9d557.png)

**3-3: Select Runtime:** 您可以为测试用例选择一个“运行时”来执行测试。

![image-20250120-031418.png](https://docs.testany.io/docs/images/zh/image-20250120-031418_a4378a50.png)

**3-4: Make Private?:** 您可以将用例设置为全局可见或限制在特定工作区内。

3-4-1: 全局可见性：将“Make Private?”保持为“No”（否）。

![image-20250120-033148.png](https://docs.testany.io/docs/images/zh/image-20250120-033148_85e3351c.png)

3-4-2: **工作区限制可见性**：将“Make Private?”保持为“No”（是）。然后，在下拉列表选择您希望共享的工作区。

![image-20250120-032610.png](https://docs.testany.io/docs/images/zh/image-20250120-032610_a184c966.png)

##### 4. 点击“Register & Next”按钮

在弹窗右下角点击“Register & Next”按钮以注册用例。随后，您将被重定向到用例详情页面。


> **说明**
>
> 此时，用例试运行所需的必填字段仍未填写完整。您需要继续编辑用例，以便能够成功执行试运行（Dry Run）。


### 更新测试用例


> **说明**
>
> 在开始之前，请仔细阅读并严格遵循以下**测试用例包文件规范**，以确保您的测试用例能够成功注册。


#### 测试用例包文件规范

1. 文件必须有.zip扩展名。
2. 压缩文件必须包含您的测试用例代码文件。

   1. 如果选择 `Postman` 框架，至少需要一个 `.json` 文件（Postman集合文件）
   2. 如果选择 `Pytest` 或 `Python` 单元测试框架，至少需要一个 `.py` 文件
   3. 如果选择 `JMeter` 框架，至少需要一个 `.jmx` 文件
   4. 如果选择 `Playwright` 框架，至少需要一个 `.js` 或 `.ts` 文件
3. 如果您的测试用例有多个文件，文件数量不得超过100个。（Postman只能支持一个`.json`集合文件）
4. 整个测试用例包.zip文件大小不得超过1MB。
5. 单个测试用例只能有一个环境。如果您有一个能够测试多个环境的测试用例（通过调整环境变量），您需要在Testany平台上将其注册为多个测试用例。

#### 分步骤指引


> **说明**
>
> 以下是有关编辑测试用例的一些限制：


1. 仅测试用例的所有者或全局管理员有权进行编辑。
2. 测试用例的唯一标识（Key）是不可变的，在任何情况下都无法更改。
3. 测试用例的运行时（Runtime）无法被修改。

##### **1. 进入用例详情页面**

##### **2. 填写必填项**


> **说明**
>
> 在进行内联编辑时，您所做的所有更改将在您点击确认按钮✅后自动保存。


**2-1: Test executor:** 您可以在此处选择执行测试用例所需的框架。选择框架后，您需要根据执行器类型填写 **Path（路径）** 或 **Command（命令）**：

| 执行器 | 输入类型 | 填写内容 | 示例 |
|-------|---------|---------|------|
| Postman | Path | `.json` collection 文件的相对路径 | `collection.json` |
| JMeter | Path | `.jmx` 文件的相对路径 | `test-plan.jmx` |
| Playwright | Path | 测试 `.js` 或 `.ts` 文件的相对路径 | `playwright/tests/example.spec.ts` |
| Python | Command | 完整的执行命令 | `python -m pytest test_api.py` |
| PyRes | Command | 完整的执行命令 | `python -m pytest test_api.py` |


> **说明**
>
> **Path 与 Command 的区别：**
> - **Path（路径）**：.zip 包内测试文件的相对路径。平台会自动使用对应框架的运行器执行。
> - **Command（命令）**：完整的 shell 命令。您可以完全控制测试的运行方式。


![image-20250423-074836.png](https://docs.testany.io/docs/images/zh/image-20250423-074836_49cafe85.png)

**2-2: Definition file:** 在此处，您可以上传您的测试用例代码文件。请确保文件被包含在一个 .zip 压缩包中。

![image-20250423-074916.png](https://docs.testany.io/docs/images/zh/image-20250423-074916_75da893c.png)

**2-3: Environments:** 这是测试用例的重要属性，描述了测试用例所测试服务的环境。在Testany平台上，每个测试用例可以对应一个或多个环境。

![image-20250423-075136.png](https://docs.testany.io/docs/images/zh/image-20250423-075136_544fab5a.png)


> **说明**
>
> - 必须为2-80个字符长度。
> - 首字符必须为字母或数字。
> - 最后一个字符不能是空格。
> - 仅允许大写字母、数字、连字符、下划线、点和空格。


**2-4: Environment variables:** 您可以在此填写运行测试用例所需的其他环境变量。当前这一栏统一支持三种类型：

- `普通变量`：常规 key/value 环境变量。
- `中继变量`：用于流水线 Relay 编排。
- `Secret`：用于引用工作区凭证，而不是直接填写明文 secret。

*如果在某次执行过程中需要临时更改某个参数，您可以使用适当的方法将其转换为环境变量并在这里填写。*

![image-20250423-075525.png](https://docs.testany.io/docs/images/zh/image-20250423-075525_60373ace.png)


> **说明**
>
> - 超过16组环境变量可能会导致异常行为。
> - Key长度不得超过80个字符。
> - Key只能包含大写字母、数字和下划线（符合POSIX.1-2017规范）。
> - Key必须以大写字母开头（A-Z），不能以下划线或数字开头。
> - Key（name）不可重复（同一个测试用例内需唯一）。
> - `普通变量` 和 `中继变量` 的 Key 与 Value 均不能为空或仅包含空白字符。
> - `普通变量` 和 `中继变量` 的 Value（value）长度不得超过1000个字符。
> - `Secret` 类型不直接填写明文 Value，而是要继续选择 `Workspace`、`Credential Safe` 和 `Credential`。
> - 如果业务逻辑需要表达“空值”，请显式填 `-`。


*如果您有一个想在测试用例中共享的环境变量，您可以在代码中设置relay的名称和值（请点击*[*这里*](https://docs.testany.io/zh/docs/managing-test-case-with-relay-case.md#将代码添加到您的测试脚本)*参考示例代码）。然后，将relay名称作为relay环境变量在环境变量中暴露（点亮relay图标）。这样，它可以在流水线编排过程中使用。*

![image-20250423-075608.png](https://docs.testany.io/docs/images/zh/image-20250423-075608_fb7a93ba.png)


> **备注**
>
> 如果您的工作区管理员已经创建了所需凭证，您现在应直接在 **Environment variables** 里新增 `Secret` 类型条目来引用它，不再单独维护 “Secure key reference / Credential Binding” 区块。详细说明请参阅[《保护测试中需要使用的凭证》](https://docs.testany.io/zh/docs/how-to-protect-the-credentials-used-in-testing.md)。


### 阅读测试用例

您将能够在测试用例库中看到测试用例，如下图所示。如果您想快速找到特定的测试用例，可以使用页面右上角的搜索框。

![image-20250423-081948.png](https://docs.testany.io/docs/images/zh/image-20250423-081948_d108aa4a.png)

如果该测试用例是一个中继用例，右上角会显示一个中继（relay）图标。

您可以点击测试用例查看该特定测试用例的详细信息。在此页面上有几个关键元素：

- `key`：请注意，在任何情况下该键都不会（也不能）被更改。
- `Owner` 所有者
- `Visibility` 可见性
- `Labels` 标签
- `Version` 版本
- `Runtime` 运行时
- `environments` 环境
- `Meta`（包含 `environment_variables` 环境变量, `executor` 执行器 和 `path/command` 执行路径或执行命令)
- `output` 输出

![image-20250423-081747.png](https://docs.testany.io/docs/images/zh/image-20250423-081747_4ab4a00e.png)

如上所示，当在测试用例中定义了与中继相关的环境变量时，您会在“类型”（Type）列中看到对应环境的蓝色”中继“图标。

### **试运行测试用例**

如果一个测试用例自上次修改以来未执行试运行，您可以看到以下提示：

1. 用例名称下方的消息栏会提醒您和其他有权访问该用例的用户：该用例尚未成功完成试运行。
2. “DryRun”按钮为激活状态，以提示用例所有者可以随时返回此页面并点击按钮执行试运行。
3. 输出栏显示该用例尚未成功完成试运行。

![image-20250423-083110.png](https://docs.testany.io/docs/images/zh/image-20250423-083110_6628a395.png)

点击“Dry Run”按钮，平台将立即执行试运行，以验证测试用例是否正确且兼容。同时，系统会将您重定向至该测试用例的试运行页面，您可以在页面上查看显示的信息，确保其符合您的预期。

![image-20250423-083400.png](https://docs.testany.io/docs/images/zh/image-20250423-083400_5f1f4c86.png)


> **说明**
>
> 试运行仅在测试用例所有必填字段已完整填写的情况下方可执行。否则，按钮将无法被点击。


![image-20250423-083544.png](https://docs.testany.io/docs/images/zh/image-20250423-083544_2d637988.png)

### 转移所有权

如需将测试用例移交给其他用户，当前所有者或全局管理员可以转移所有权。

1. 进入用例详情页面。
2. 在右侧 **Details** 面板中，找到 **Owned by** 字段，点击当前所有者的名字。
3. 弹出搜索框后，输入关键字搜索新的所有者，然后从列表中选择。
4. 点击 **Confirm** 完成转移。


> **说明**
>
> 转移完成后，新的所有者将拥有该测试用例的完整控制权（编辑、删除、试运行），原所有者将失去编辑和删除权限（除非其为全局管理员）。


### **删除测试用例**

1. 进入用例详情页面。

2. 作为用例所有者，点击用例右上角的“Delete”按钮。


> **说明**
>
> - 如果一个用例已被编排到一个或多个测试流水线中，系统将返回409错误，并不允许删除该用例。如需成功删除用例，请先确保该用例已从所有相关的测试流水线中移除。
> - 如果某个测试用例是通过 Git 导入的，则无法手动删除。更多详细信息请参考文档[《批量管理测试用例 - 3.5 批量删除》](https://docs.testany.io/zh/docs/bulk-manage-test-cases.md#3-5-批量删除)。


## 测试用例打包常见问题

### Q1: "Path" 和 "Command" 有什么区别？

| 项目 | 适用执行器 | 含义 | 示例 |
|-----|----------|-----|------|
| **Path** | Postman, JMeter, Playwright | .zip 包内测试文件的相对路径 | `collection.json` 或 `tests/example.spec.ts` |
| **Command** | Python, PyRes | 完整的 shell 执行命令 | `python -m pytest test_api.py` |

### Q2: requirements.txt 中的依赖会自动安装吗？

**会的。** 对于 Python/PyRes 执行器，如果包中存在 requirements.txt 文件，Testany 会在执行测试前自动运行 `pip install -r requirements.txt`。

### Q3: 多文件的 Python 测试如何打包？

```
my-test.zip
├── tests/
│   ├── __init__.py
│   ├── test_login.py
│   └── test_order.py
├── utils/
│   └── helpers.py
└── requirements.txt
```

**Command:** `python -m pytest tests/`

### Q4: 为什么 Postman 只支持单个 .json 文件？

Postman 执行器仅支持单个 collection 文件。如果需要环境变量，请在测试用例详情页面的 **Environment Variables** 部分配置，而不是使用单独的 environment 文件。

### Q5: 如果 .zip 文件超过 1MB 怎么办？

- 移除不必要的文件（`.git`、`__pycache__`、`node_modules` 等）
- 不要包含大型测试数据文件，改用环境变量传递
- 如果确实需要更大的文件，请联系 Testany 支持团队

### Q6: DryRun 失败并显示 "File not found"，应该检查什么？

1. **检查 Path/Command**：确保与 .zip 包内的实际文件位置一致
2. **检查目录结构**：如果测试文件在子目录中，需要包含完整路径（例如 `tests/test_api.py` 而不是 `test_api.py`）
3. **检查文件扩展名**：确保扩展名与执行器匹配（Python 用 `.py`，Postman 用 `.json` 等）

×

## 本页术语

- [测试用例 (Test Case)](https://docs.testany.io/zh/docs/glossary.md#test-case)
- [用户 (User)](https://docs.testany.io/zh/docs/glossary.md#user)
- [全局管理员 (Global Administrator)](https://docs.testany.io/zh/docs/glossary.md#global-admin)
- [执行 (Execution)](https://docs.testany.io/zh/docs/glossary.md#execution)
- [测试用例元数据 (Test Case Meta)](https://docs.testany.io/zh/docs/glossary.md#test-case-meta)
- [用例可见性 (Case Visibility)](https://docs.testany.io/zh/docs/glossary.md#case-visibility)
- [全局可见性 (Global Visibility)](https://docs.testany.io/zh/docs/glossary.md#global-visibility)
- [工作区限制可见性 (Workspace-Restricted Visibility)](https://docs.testany.io/zh/docs/glossary.md#workspace-restricted-visibility)
- [工作区 (Workspace)](https://docs.testany.io/zh/docs/glossary.md#workspace)
- [工作区成员 (Workspace Member)](https://docs.testany.io/zh/docs/glossary.md#workspace-member)
- [运行时 (Runtime)](https://docs.testany.io/zh/docs/glossary.md#runtime)
- [环境 (Environment)](https://docs.testany.io/zh/docs/glossary.md#environment)
- [执行器（Executor）](https://docs.testany.io/zh/docs/glossary.md#executor)
- [路径（Path）](https://docs.testany.io/zh/docs/glossary.md#path)
- [命令 (Command)](https://docs.testany.io/zh/docs/glossary.md#command)
- [工作区管理员 (Workspace Admin)](https://docs.testany.io/zh/docs/glossary.md#workspace-admin)
- [测试用例库（Test Case Library）](https://docs.testany.io/zh/docs/glossary.md#test-case-library)
- [中继用例 (Relay Case)](https://docs.testany.io/zh/docs/glossary.md#relay-case)
- [测试流水线 (Test Pipeline)](https://docs.testany.io/zh/docs/glossary.md#test-pipeline)
