禅道是一款国产的开源研发项目管理软件,基于敏捷和CMMI管理理念进行设计,完整地覆盖了项目管理的核心流程。根据国内权威测试网站51Testing的《2021软件测试现状调查报告》显示,禅道已连续七年在"常用的测试管理工具”中排名第一。
在前面的专题文章中我们认为,随着持续集成和DevOPS的流行,自动化测试已经成为了研发活动中的不可或缺的一个重要环节。甚至可以说,没有成熟的自动化测试,持续集成和DevOPS都不可谓之为成功。
本文给大家介绍如何将第三方的自动化测试工具同禅道进行集成,打造一个一站式的完整研发管理平台。内容基于禅道16.5版本,更早的版本请参照这里安装RestAPI插件后继续。
首先,您可以将公司现有的自动化测试脚本和禅道中的用例相关联,据此可以统计禅道测试用例的自动化率。通过调用禅道testcases接口,可以在禅道和自动化系统间,同步测试步骤和期待结果等信息。在禅道开源的自动化测试框架ZTF中,我们使用脚本顶部的注释,来支持ZTF自管理的测试脚本到禅道用例的映射和同步。
#!/usr/bin/env php
<?php
/**
title=the simple demo for ztf
cid=0
pid=0
1. step1 >> expect 1
2. step2
3. step3 >> expect 3
*/
print("expect 1\n");
print("expect 3\n");
您可以使用禅道的持续集成特性,在流水线中执行单元或自动化测试。执行完成后,将输出的测试结果,使用ciresults接口提交到禅道,由禅道中集中地展示测试报告。在禅道开源的自动化测试框架ZTF中,我们支持把脚本执行结果、单元测试结果和第三方通用报表工具Allure Report的报告同步到禅道中去。如果ZTF脚本注释中设置了禅道用例的编号cid,或者在Allure通过标注(注释)或代码的方式设置了单元测试用例的编号,具体的测试结果在同步后会挂到指定的禅道用例上。
在测试执行中发生用例失败时,可以使用bugs接口向禅道提交缺陷。缺陷的描述可以从ZTF脚本的执行步骤、期待结果、实际结果,或单元测试的输出信息中获取。具体可以参照ZTF开源项目的cb提交缺陷指令的实现。
借助您研发管理系统中所维系的需求、用例、脚本、执行、结果和缺陷等工作件之间的关系,您可以在项目管理层面,得到需求的用例设计覆盖率、用例的自动化覆盖率、某次迭代中的用例或需求的执行覆盖率等度量指标。
以下列出您可能需要使用到的禅道接口,供大家参考。
登录
POST
api.php/v1/tokens
列出所有产品
GET
api.php/v1/products
列出产品的用例模块
GET
api.php/v1/modules?type=case&id=<product_id>
列出产品测试套件
GET
api.php/v1/products/<product_id>/testsuites
列出产品测试套件
GET
api.php/v1/testtasks?product=<product_id>&limit=1000
根据模块获取用例
api.php/v1/products/%d/testcases?module=%d
根据套件获取用例
api.php/v1/testsuites/%d
根据任务获取用例
api.php/v1/testtasks/%d
获取用例详情
GET
api.php/v1/testcases/%d
更新用例内容
PUT
api.php/v1/testcases/%d
提交测试结果
POST
api.php/v1/ciresults
提交缺陷
POST
api.php/v1/products/<product_id>/bugs
上述接口,可以在禅道“文档->接口库”中找到其API的详细介绍,在ZTF开源测试框架项目中,我们已使用Golang做了实现,具体可参考这里。