前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Allure整合JIRA XRAY实现自动化用例管理

Allure整合JIRA XRAY实现自动化用例管理

作者头像
Antony
发布2022-01-12 08:35:58
2K0
发布2022-01-12 08:35:58
举报

笔者之前写过一篇文章 测试用例管理平台的一二三 ,介绍了几种常见的测试用例管理平台。本文将介绍如何实现通过Allure提供的注解以及xray-maven-plugin实现在JIRA上实现自动化用例的管理。

JIRA X-RAY用例管理

JIRA的XRAY插件利用了JIRA原生的issue管理和工作流引擎,可以在满足基本的测试用例和测试任务管理的同时,天然地连通需求、缺陷等内容,非常方便地实现需求-用例-缺陷的上下游追溯,并实时提供测试进度、需求覆盖强度等报告。如下图所示,

XRAY号称已经服务于70多个国家的5000多客户。作为一个小众市场的一款产品,其商业化无疑是非常成功的。

X-RAY的用例管理模型是这样的。

一般可以通过Test来描述一个测试用例,而使用Test Execution 来表征一次测试用例集的执行。这也是最为常见的测试用例管理的诉求。

使用Xray-Maven-Plugin实现JUnit与JIRA X-RAY整合

为了实现对于自动化用例的管理,我们通过找寻,发现X-RAY官方其实提供了一个Xray-Maven-Plugin插件,这个插件能够实现JUnit和JIRA X-RAY用例管理之间的联动。

具体来讲,JUnit在生成测试报告的时候,会将测试用例和测试执行结果生成xml格式的surefire report报告保存到约定的一个目录下。那么类似的,这个X-RAY插件,它也会去解析这个目录,同时的话把这些相关的结果向JIRA的服务端进行申报。所以整个插件实际上就完了surefire report报告的解析,以及向JIRA服务端批量申报测试用例和执行结果的工作。

笔者在曾经介绍过类似的方案【去中心化的测试用例平台之Maven插件

那以下是其官网给出的一个验证项目的结果图

https://docs.getxray.app/display/XRAY/Testing+web+applications+using+Selenium+and+Junit5+in+Java

配置X-RAY插件和相关属性

增加属性,xray.projectKey与Jira project key保持一致: ... ... xxxXX JUNIT ${basedir}/target/surefire-reports

引入XRAY插件: com.xpandit.xray xray-maven-plugin 1.1.0

运行使用

1、按照测试流程,在JIRA创建 Test Plan 和 Test Execution

2、maven的settings.xml文件配置jira地址及用户名密码,xray.username和xray.password配置成测试执行者的jira用户名和密码 jira-xray http://your.jira.com/jira yourName *****

在版本的jira中支持了使用token,会比目前的明文username、password更安全一些。

3、创建构建步骤,执行命令,指定Test Plan、TestExecution和fixVersion测试版本,运行

mvn clean package surefire:test com.xpandit.xray:xray-maven-plugin:xray -P jira-xray -Dxray.testPlanKey=xxx-82 -Dxray.testExecKey=xxx-83 -Dxray.testEnviroments=iOS/Linux -Dxray.fixVersion=xxx_V1.2.3

4、jira查看Test Plan和 Test Execution,用例执行情况已上报

可以看到,通过这样的一个操作过程,测试用例就可以通过这个Maven执行报告解析、用例先申报,那么最终的话,可以在JIRA上生成了测试用例Test,同时的话也生成测试用例的执行结果 Test Execution。也就是说,通不需要任何的二次开发,我们用利用原生的Xray-Maven-Plugin的功能,就能实现JUnit和JIRA之间的测试用例管理的整合。

但目前来讲,这个实现的功能和笔者之前提供的一个解析JUnit surefile测试报告,然后再生成生成测试用例和用例执行结果并向用例管理平台进行报告的方案基本上是类似的。

也就是说这个方案的一个不足之处,或者是一个局限性是说,该方案并没有充分地发挥X-RAY的功能。也就是在开篇所提到的,X-RAY除了描述测试用例本身的属性之外,它还提供了一些关联的注解,如需求、测试集、缺陷、优先级等等一些必须必要的管理要素。那比较遗憾的是说X-RAY的这个插件,它并没有去解析和获取这些数据,然后向JIRA进行申报。

Allure测试用例报告框架

Allure 是一款功能强大的测试报告框架,可以很好地与多种语言的不同测试框架进行集成,用于生成和管理测试结果报告。以下是Allure在JUnit5中使用的案例,

Allure注解使用案例

代码语言:javascript
复制
1.@Epic("Login Tests Epic")
2.@Feature("Invalid Login Features")
3.public class LoginTest extends BaseTest {
4.    @Test
5.    @Story("User tries to login the system with invalid username and invalid password.")
6.    @Description("Invalid Login Test with Invalid Username and Invalid Password.")
7.    public void invalidLoginTest_InvalidUserNameInvalidPassword() {
8.        page.getPage(HomePage.class)
9.            .givenIAmAtHomePage()
10.            .whenIGoToLoginPage()
11.            .andILoginToN11("onur@swtestacademy.com", "11223344")
12.            .thenIVerifyLogEntryFailMessage();
13.    }
14.        @Test
15.    @Story("This is a Fail Story.")
16.    @DisplayName("This is a Fail Story Description.")
17.    public void failTest() {
18.        assertTrue(false);
19.    }
20.}

可以看到,Allure提供了较为丰富的测试用例注解,简要介绍如下:

首先是关于用例自身的描述,如

代码语言:javascript
复制
@DisplayName("创建部门")
@Description("说明XXXXX")
@Severity(SeverityLevel.BLOCKER)//设置用例等级
1)blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2)critical级别:临界缺陷(功能点缺失)
3)normal级别:正常
4)minor级别:次要缺陷(界面错误与UI需求不符)
5)trivial级别:轻微缺陷(必输项无提示,或者提示不规范)
@step:写在用例中,报告中case的执行步骤

除了描述一个用例自身的属性之外,Allure还提供了与需求、缺陷等的关联对象的注解,

代码语言:javascript
复制
@Epic、@Feature、@Story:这是常见的需求管理的三个层级
@Link("www.baidu.com")//添加超链接
@Issue("001")//添加问题编号

通常的Allure使用场景是通过Maven/Gradle等构建工具执行完测试用例后,再运行allure插件的命令,并生成Allure报告。

整合Allure+ XRAY-maven-plugin

在我们目前推行的方案当中,要求测试用例需要关联到需求,如Story。由于Story关联到了JIRA Project的组件Component, 间接地也就能梳理出来每个组件下有哪些用例了。同时由于Story中关联到了版本Version,也就能筛选出每个系统在本次发布中的新增用例清单了。

而在测试执行层面,JIRA X-RAY通过某个Test Execution来表示某个用例Test或者用例集Test Set的某次执行情况。并后通过Test Execution关联版本来了解本次发布中用例执行的情,如新增用例和回归测试,包括对需求、组件的覆盖情况。

目前团队选择的方案是选择了参考Allure的注解格式,补充扩展了一套测试用例注解,然后通过类似X-RAY的Maven插件来向JIRA报送测试用例和执行结果。这个方案是兼容了Allure的JSON格式的用例报告,这样也就保证了与原生方案的向下兼容,也可以以此为接口,支持多种语言的测试框架的统一接入。

就之前介绍的,由于X-RAY的插件只能读取用例的基本信息,Allure的用例注解中关于Story、Bug等信息只能由Allure服务端自行解析并展示,没有通过X-RAY的插件向JIRA进行报告。因此,重写了X-RAY的这个插件,在原先的测试用例和执行结果上报的基础之上,额外去调用其他的JIRA接口去完成测试用例、执行结果与Story、Bug之间的关联关系创建,以及测试用例执行与版本、组件等等基础信息的填报。

按照这样的一个思路的话,就能实现在测试用例管理系统中实现自动化用例的管理,除了用例自身的基础信息外,通过一套自定义的注解格式,就能实现自动化用例的管理要求,实现与上下游的联动以及管理要素属性的自主申报。

由于整个工作是基于开源工具来实施的。如果读者感兴趣的话,也可以参考X-RAY插件的源码来进行二次开发,在梳理好需要使用的自定义注解后,整个实现过程也并不太复杂。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JIRA X-RAY用例管理
    • 配置X-RAY插件和相关属性
    • Allure测试用例报告框架
    • 整合Allure+ XRAY-maven-plugin
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档