Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 Release Notes
  • 术语表

    • 术语表

Zadig 支持性能、功能、接口、UI、端到端自动化测试等诸多测试场景,内置了 jMeter、ginkgo 等主流测试框架,还可以通过安装软件包以满足更为丰富的自动化测试需要。

测试模块主要包含自动化测试集管理、测试环境的支持、测试执行和结果分析,同时支持标准 Junit / Html 测试报告的输出。

测试管理

  • 测试管理:跨项目用例可共享。
  • 测试执行:支持 CI/CD 并发执行、单独执行、跨环境执行。
  • 测试分析:单场景耗时、通过率分析,跨团队测试效益、健康度分析。

测试管理

测试配置

测试执行环境

配置测试任务运行时的环境。

测试管理

  • 操作系统:目前平台提供 Ubuntu 18.04 / Ubuntu 20.04 供选择,也可以自定义测试执行环境,详情请参考:构建镜像管理。
  • 依赖的软件包:编译过程中需要用到的各类工具,比如不同版本的 Java、Go、Govendor、Node、Bower、Yarn、Phantomjs 等等。目前系统内置 Jmeter、Ginkgo、Selenium 等常见测试框架和工具。

提示

  1. 选择软件包的过程中需要注意多个软件包之间的依赖关系,按照顺序进行安装。例如:Govendor 依赖 Go,那么必须先选 Go,再选择 Govendor。
  2. 如果有其他软件包或者版本需求,系统管理员可以在软件包管理中配置其安装脚本。

代码信息

测试管理-代码信息

说明:

  • 代码源:代码库所在的平台,目前支持 GitHub、GitLab、Gerrit、Gitee。
  • 代码库拥有者:支持开源库,以及所配置的代码源下的代码库拥有者。
  • 代码库名称:代码库的名称。
  • 默认分支:执行测试任务时,默认选取的分支。
  • Remote name:指定远程代码仓库的名称,默认 origin。
  • 克隆目录名:定义代码库被克隆后的目录名称,默认为代码库的名称。
  • 子模块:同步 submodule 中配置的代码库。
  • 执行时显示:默认开启,若设置为关闭,则执行工作流时,测试模块中不显示该代码库选项,代码配置使用默认值。

测试变量

包括系统内置变量和自定义变量,可在测试脚本中直接使用。

提示:在 测试脚本 中添加 env 命令可查看所有测试变量。

测试管理

内置测试变量

内置测试变量及其描述说明如下:

变量名称描述
WORKSPACE当前测试任务的工作目录
PROJECT项目标识
LINKED_ENV被测环境的命名空间
ENV_NAME被测环境的名称
TEST_URL测试任务的 URL
SERVICES将测试任务和工作流关联后,通过工作流任务更新的服务组。服务名以 “,” 分隔,形如 service1,service2,service3
CI值恒等于 true,可视需要使用
ZADIG值恒等于 true,可视需要使用
REPONAME_<index>1. 获取指定 <index> 的代码库名称
2. 其中 <index> 为测试配置中代码的位置,初始值为 0
3. 下图例中,在测试脚本中使用 $REPO_0 即可获得第一个代码库的名称 zadig
REPO_<index>1. 获取指定 <index> 的代码库名称,并自动将名称中的中划线 - 替换为下划线 _
2. 其中 <index> 为测试配置中代码的位置,初始值为 0
3. 下图例中,在测试脚本中使用 $REPO_1 即可获得第一个代码库转化后的名称 test_resources
<REPO>_PR1. 获取测试过程中指定 <REPO> 使用的 Pull Request 信息,使用时请将 <REPO> 替换为具体的代码库名称
2. 当 <REPO> 信息中含有中划线 - 时,需要将 - 替换为下划线 _
3. 下图例中希望获取 test-resources 库的 Pull Request 信息,使用 $test_resources_PR 或者 eval PR=\${${REPO_0}_PR} 即可
4. 若构建时指定了多个 PR,比如指定的 PR ID 为 1、2、3,则该变量的值为 1,2,3
5. 当代码库为其他代码源时,不支持该变量
<REPO>_BRANCH1. 获取测试过程中指定 <REPO> 使用的分支信息,使用时请将 <REPO> 替换为具体的代码库名称
2. 当 <REPO> 信息中含有中划线 - 时,需要将 - 替换为下划线 _
3. 下图例中希望获取 test-resources 库的分支信息,使用 $test_resources_BRANCH 或者 eval BRANCH=\${${REPO_0}_BRANCH}即可
<REPO>_TAG1. 获取测试过程中指定 <REPO> 使用的 Tag 信息,使用时请将 <REPO> 替换为具体的代码库名称
2. 当 <REPO> 信息中含有中划线 - 时,需要将 - 替换为下划线 _
3. 下图例中希望获取 test-resources 库的 Tag 信息,使用 $test_resources_TAG 或者 eval TAG=\${${REPO_0}_TAG} 即可
<REPO>_COMMIT_ID1. 获取测试过程中指定 <REPO> 使用的 Commit ID 信息,使用时请将 <REPO> 替换为具体的代码库名称
2. 当 <REPO> 信息中含有中划线 - 时,需要将 - 替换为下划线 _
3. 下图例中希望获取 test-resources 库的 Commit ID 信息,使用 $test_resources_COMMIT_ID 或者 eval COMMIT_ID=\${${REPO_0}_COMMIT_ID} 即可
4. 当代码库为其他代码源时,不支持该变量
<REPO>_ORG1. 获取测试过程中指定 <REPO> 使用的组织/用户信息,使用时请将 <REPO> 替换为具体的代码库名称
2. 当 <REPO> 信息中含有中划线 - 时,需要将 - 替换为下划线 _
3. 下图例中希望获取 test-resources 库的组织/用户信息,使用 $test_resources_ORG 或者 eval ORG=\${${REPO_0}_ORG} 即可

测试管理

自定义测试变量

说明:

  • 支持使用字符串类型或者枚举类型的测试变量。
  • 可以设置字符串类型的变量为敏感信息,如 Access Key Id、Secret Access Key 等信息。设置为敏感信息后,测试任务的运行日志中将不会再输出其明文信息。

测试脚本

声明测试的具体执行过程,可在测试脚本中使用测试变量。

测试报告配置

配置测试报告所在的目录或测试文件的具体路径。

测试管理

说明:

  • 支持标准 Junit XML / Html 格式的测试报告。
  • 对于 Junit 测试报告,需要配置其所在的目录,比如 $WORKSPACE/path/to/junit_report/,若目录下有多个测试报告,Zadig 会将所有测试报告合并视为最终报告。
  • 对于 Html 测试报告,需要配置其具体的文件路径,比如 $WORKSPACE/path/to/html_report/result.html,Html 测试报告文件将包含在测试任务发送的 IM 通知内容中。

文件存储

在添加步骤中可配置文件存储,用于将指定文件上传到对象存储中。

测试管理

高级配置

测试管理

测试结果导出

设置一个或者多个文件目录,测试完成后可以在工作流任务详情页面进行下载,如下图所示:

测试管理

策略配置

  • 超时时间:配置测试任务执行的超时时间,若超过设置的时间阈值后测试任务仍未成功,则视为超时失败。
  • 缓存配置:开启缓存后,在测试任务执行时会使用此处配置的缓存目录。

资源配置

  • 集群选择:选择测试任务运行时所使用的集群资源,其中本地集群指 Zadig 系统所在的集群,关于集群的集成可参考集群管理。
  • 操作系统规格:配置资源规格用于执行测试任务。平台提供 高/中/低/最低 四种配置供选择,可以根据实际需要自定义规格,参考自定义镜像管理。

Webhook 触发器

添加触发器配置,对指定的事件进行 Webhook 自动触发。目前支持 GitLab/GitHub 代码源。

测试管理

参数说明:

  • 代码库:需要监听触发事件的代码仓库。
  • 目标分支:提交 pull request 时的 Base 分支。支持正则表达式配置,语法参见 Regexp Syntax。
  • 触发事件: 指定触发测试运行的 Webhook 事件,可选事件如下:
    • Push commits 事件(Merge 操作)时触发。
    • Pull requests 提交 pull request 时触发。
    • Push tags 新建 tag 之后触发。
  • 自动取消:Push commits 和 Pull requests 事件支持自动取消,如果你希望只触发最新的提交,则使用这个选项会自动取消队列中正在进行的前序任务。
  • 文件目录: 通过设置文件和文件目录,可以实现对文件以及目录的监听,当文件或者目录发生变化(新增/修改/删除)时触发测试任务。也可以忽略对应的文件或者目录变更,不进行测试任务的触发。

使用以下代码仓库文件结构为例:

├── reponame  # 仓库名称
  ├── Dockerfile
  ├── Makefile
  ├── README.md
  ├── src
    ├── service1/
    ├── service2/
    └── service3/
触发场景文件目录配置
所有文件更新/
除 *.md 以外的其他文件更新/
!.md
除 service1 目录下的其他文件更新/
!src/service1/
service1 目录下所有文件更新src/service1/
src 目录下(除 service1 目录下的文件)的文件更新src
!src/service1/

定时配置

通过配置定时器,可以实现周期性的运行测试任务,目前支持的定时器方式主要有:

  • 定时循环:在某个时间点定时执行某个工作流,例如每天 12:00 运行,每周一 10:00 运行
  • 周期循环:周期性的执行某个任务,例如每 30 分钟执行一次工作流
  • Cron 表达式:使用标准的 Linux Cron 表达式灵活的配置定时器,例如:"45 4 1,10,22 * *",每月 1、10、22 日 4:45 分执行工作流任务

定时循环

点击添加按钮添加一项定时循环条目,分别选择周期时间以及时间点。

test

间隔循环

点击添加按钮添加一项间隔循环条目,分别选择间隔时间以及间隔时间单位。

test

Cron 表达式

点击添加按钮添加一项 Cron 表达式条目,填写 Cron 表达式。

test

通知配置

目前支持配置测试任务最终执行状态通知到企业微信、钉钉、飞书。

企业微信

请参照企业微信配置文档获取详细信息。

若为某个群组添加 Bot 可以登录企业微信 -> 选择某个群组后右键点击,选择添加机器人,可以获取到相关 Webhook 地址。

参数说明:

  • 企业微信 Webhook 地址 : 通知到企业微信群 Bot 机器人的地址
  • 通知事件: 可配置通知的规则,工作流状态可多选

配置图示:

企业微信配置步骤

钉钉

请参照钉钉自定义机器人配置获取详细信息。

在钉钉上添加自定义 Bot 机器人的时候,必须开启安全设置,安全设置有 3 种,可以设置一种或多种:

  • 自定义关键字:如果选择自定义关键字,请输入工作流三个字
  • 加签:开启后,Webhook 地址获取参考:获取加签后的 Webhook 地址
  • IP 地址(段):具体配置请参考配置文档

配置图示:

钉钉配置步骤

飞书

请参照飞书配置配置飞书 Bot 并获得 Webhook 地址,将复制的 Webhook 地址填写到测试的通知配置中。

配置图示:

飞书配置

通知效果如下图,点击测试结果中的链接即可查看 Html 测试报告。

飞书通知效果

与环境联动

测试配置完毕后,点击测试集右侧的关联工作流,即可将该自动化测试集和工作流关联起来。

可跨项目关联工作流,可关联多个工作流。

测试关联工作流测试关联工作流

运行工作流对指定环境进行部署更新后,会自动运行自动化测试,实现对该环境测试验收的目的。

运行工作流和测试

查看测试报告

点击测试任务中的测试结果链接可查看测试报告。

查看测试报告

可概览测试用例的运行结果和耗时、不同结果用例的比例。对失败/错误的用例进行过滤、快速查看失败信息以辅助定位分析。

查看测试报告

Prev
构建
Next
代码扫描