如何在 Zadig 上玩转自动化测试,为业务质量保障提供最大价值

如何利用 Zadig 配置并运行自动化测试?如何分析测试报告?怎么度量改进自动化测试效果?

KodeRover
KodeRover  
如何利用 Zadig 配置并运行自动化测试?如何分析测试报告?怎么度量改进自动化测试效果?

其实 Zadig 不但能提供强大的测试环境支持,还支持性能、功能、接口、UI、端到端自动化测试等诸多测试场景。

本文通过一个案例实战,来了解在 Zadig 中如何实践自动化测试,为业务质量保障提供最大价值。

# 配置测试

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

准备工作

  • 本例中的自动化测试源码 fork 自测试用例,用于自动验证 KodeRover 官网
    https://www.koderover.com 及文档站 https://docs.koderover.com 访问无异常
  • 用例源码使用 Go 语言实现,测试框架选用 ginkgo + gomega

本例中的自动化测试源码 fork 自测试用例,用于自动验证 KodeRover 官网(https://www.koderover.com)及文档站(https://docs.koderover.com)访问无异常

配置基本信息

进入项目的测试模块,点击 新建测试,配置基本信息

相关参数说明:

  • 测试名称:对该测试的标识,可阅读有意义即可
  • 依赖的软件包:运行测试用例时的软件应用、框架依赖,本例依赖 go1.16.13
  • 代码信息:测试用例所在的代码仓库,根据集成的代码源实际情况填写
  • 测试变量:根据情况设置,这里可以不设置。值得注意的是内置测试变量提供了几个非常贴合微服务架构验证的相关的变量,比如 LINKED_ENV(被测环境的命名空间)、ENV_NAME(被测环境的名称)、SERVICES(上游工作流传递的服务组)

配置自动化测试脚本

设置测试报告输出

此例中为生成的报告位置: $WORKSPACE/zadig/examples/test-demo/test ,在相应位置填写即可,若路径下有多个 Junit xml 文件,Zadig 会自动分析合并汇总后输出测试报告结果。

# 运行测试

  • 执行自动化测试
  • 在测试任务执行时,可查看执行日志

# 查看测试报告

待测试任务运行完毕,点击测试结果中的链接可查看测试报告。可概览测试用例的运行结果和耗时,不同结果用例的比例,对失败/错误的用例进行过滤分析,查看失败信息以辅助定位分析等。

# 分析测试效能

在测试中心中提供了整个系统的测试集看板,可全局预览所有项目的测试用例总数量、执行次数、平均执行时间、通过率等指标,一览无余。 在数据视图 - 效能洞察中,可对指定项目中测试的趋势、健康度、平均测试时长、周交付部署次数以及周测试收益进行查看分析,做到有的放矢。

# 解锁更多姿势

关于自动化测试在 Zadig 中更多的使用姿势,为业务质量保障提供更多价值

对更新的服务进行实时测试验证 将测试和开发过程的工作流关联起来,实际场景中可以并行开发代码、并行部署后自动化验证测试。 当运行 koderover-doc-update 工作流对 https://docs.koderover.com 进行部署更新后,会自动执行自动化测试,确认更新后的站点是否能正常工作。

质量保证前置到研发环节:对每一次代码变更做保障

将测试和工作流关联后,开启工作流的触发器功能。提交代码变更后,会自动触发工作流执行,部署更新服务并执行自动化测试,降低测试开发工程师的介入成本。在代码变更(eg:PullRequest / MergeRequest)下可看到工作流的执行情况,将这段代码变更的质量反馈到变更阶段,尽早暴露质量风险。

(也可修改测试配置,针对测试单独配置触发器,效果同理,此处不赘述。) IM 通知:让测试价值产生于无形之中

为工作流配置通知功能,和 IM 系统(飞书/企业微信/钉钉)对接。工作流运行完毕后即将运行结果/测试报告等详细信息发送至 IM 系统。和触发器结合起来使用,研发工程师提交代码变更后,便可在 IM 中便捷地获得自动化测试结果,及时反馈质量风险,让研发工程师专注在创造业务价值上。

(也可修改测试配置,针对测试单独配置通知,此处不赘述。)

基于一套测试套件对不同的环境做验证

巧妙利用内置的环境变量,可复用一套测试套件对多套集成环境进行测试验证。对上述源码做简单的改造(https://github.com/koderover/zadig/blob/main/examples/test-demo/test-multi-envs/multi_env_test.go),利用内置 ENV_NAME(被测环境的名称) 环境变量控制不同被测对象。当集成环境增多时,可直接复用已有测试套件对其进行质量保障。

# 解锁更多测试场景

如果内置的软件包/测试框架无法满足测试需求,可以在系统设置中添加新的软件包应用来支持更多测试场景/测试框架。

软件包管理可参考:https://docs.koderover.com/zadig/v1.10.0/settings/app/

如果需要对接企业内部现成的自动化测试平台,可以编辑工作流,添加“扩展”模块 ~ 见文档站的 “工作流 - 扩展”:

https://docs.koderover.com/zadig/v1.10.0/project/workflow/#工作流

欢迎加入开源吐槽群 🔥 进一步学习交流。

# 关于 Zadig

Zadig 是基于 Kubernetes 设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,为开发者提供云原生运行环境,支持开发者本地联调、微服务并行构建和部署、集成测试等。Zadig 内置了面向 Kubernetes、Helm、云主机、大体量微服务等复杂业务场景的最佳实践,为工程师一键生成自动化工作流 。

# 欢迎参与开源

github.com/koderover/zadig | 源码 (opens new window) gitee.com/koderover/zadig | 源码 (opens new window) koderover.com | 官网 (opens new window) space.bilibili.com/502473428 | Bilibili (opens new window) my.oschina.net/koderover | 开源中国 博客 (opens new window) blog.csdn.net/koderover | CSDN 博客 (opens new window) zhihu.com/org/koderover | 知乎 (opens new window)

欢迎大家 Star、Fork、 Watch!和众多开发者一起探讨、交流,共建开源社区!

KodeRover 公众号

© 2022 筑栈(上海)信息技术有限公司 沪 ICP 备 19000177 号 - 1