管理测试用例

概述

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

理解合格的测试用例

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

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

Testany平台上的测试用例

平台支持的测试框架

Testany 平台的一个关键特性是支持多种测试框架,并能够在单个测试管道中从不同的测试框架组装测试用例。目前,平台支持以下测试执行器:PostmanPlaywrightPython Unit TestPyResJMeter。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

3. 填写表单:

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

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

image-20250120-031138.png

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

image-20250120-031223.png

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

image-20250120-031418.png

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

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

image-20250120-033148.png

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

image-20250120-032610.png

4. 点击“Register & Next”按钮

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

ℹ️

此时,用例试运行所需的必填字段仍未填写完整。您需要继续编辑用例,以便能够成功执行试运行(Dry Run)。

更新测试用例

ℹ️

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

测试用例包文件规范

  1. 文件必须有.zip扩展名。

  2. 压缩文件必须包含您的测试用例代码文件。

    1. 如果选择 Postman 框架,至少需要一个 .json 文件(Postman集合文件)
    2. 如果选择 PytestPython 单元测试框架,至少需要一个 .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(命令)

执行器输入类型填写内容示例
PostmanPath.json collection 文件的相对路径collection.json
JMeterPath.jmx 文件的相对路径test-plan.jmx
PlaywrightPath测试 .js.ts 文件的相对路径playwright/tests/example.spec.ts
PythonCommand完整的执行命令python -m pytest test_api.py
PyResCommand完整的执行命令python -m pytest test_api.py
ℹ️

Path 与 Command 的区别:

  • Path(路径):.zip 包内测试文件的相对路径。平台会自动使用对应框架的运行器执行。
  • Command(命令):完整的 shell 命令。您可以完全控制测试的运行方式。

image-20250423-074836.png

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

image-20250423-074916.png

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

image-20250423-075136.png

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

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

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

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

image-20250423-075525.png

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

如果您有一个想在测试用例中共享的环境变量,您可以在代码中设置relay的名称和值(请点击这里参考示例代码)。然后,将relay名称作为relay环境变量在环境变量中暴露(点亮relay图标)。这样,它可以在流水线编排过程中使用。

image-20250423-075608.png

📝

如果您的工作区管理员已经创建了所需凭证,您现在应直接在 Environment variables 里新增 Secret 类型条目来引用它,不再单独维护 “Secure key reference / Credential Binding” 区块。详细说明请参阅《保护测试中需要使用的凭证》

阅读测试用例

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

image-20250423-081948.png

如果该测试用例是一个中继用例,右上角会显示一个中继(relay)图标。

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

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

image-20250423-081747.png

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

试运行测试用例

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

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

image-20250423-083110.png

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

image-20250423-083400.png

ℹ️

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

image-20250423-083544.png

转移所有权

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

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

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

删除测试用例

  1. 进入用例详情页面。

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

ℹ️
  • 如果一个用例已被编排到一个或多个测试流水线中,系统将返回409错误,并不允许删除该用例。如需成功删除用例,请先确保该用例已从所有相关的测试流水线中移除。
  • 如果某个测试用例是通过 Git 导入的,则无法手动删除。更多详细信息请参考文档《批量管理测试用例 - 3.5 批量删除》

测试用例打包常见问题

Q1: "Path" 和 "Command" 有什么区别?

项目适用执行器含义示例
PathPostman, JMeter, Playwright.zip 包内测试文件的相对路径collection.jsontests/example.spec.ts
CommandPython, 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 等)

×

还有疑问?

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