前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用TestNG listener实现Case失败重跑功能

使用TestNG listener实现Case失败重跑功能

作者头像
软测小生
发布2019-07-04 16:40:29
6100
发布2019-07-04 16:40:29
举报
文章被收录于专栏:软测小生软测小生

前提概要

Case失败了,想自动再跑一遍确认到底是不稳定还是真bug? 这可咋整啊? 使用testng的listener

你得看的懂自动化测试的框架,做过自动化测试,勉强能看懂Java代码。

直接先贴张图,(项目结构图):

首先

写了两条Case(这里为了测试Retry就没有精心去把内容分开,元素,方法全部都放在test类里面了,实际工作中这是不科学不严谨的),打开百度主页的,并保证能够正常运行的,通过testSuit文件来批量运行:

testSuit内容如下,并确保可以从这运行

其次

通过重写testng的retry方法和transform方法来实现用例失败重跑的功能。

1、先新建Java类实现IRetryAnalyzer接口

2、新建Java类实现IAnnotationTransformer接口

3、在testng.xml文件中添加RetryListener监听器

现在来测试一下,我们刻意的将代码中元素定位的改了一下之后再次运行的结果如下:显示TestCase1运行了4次

上面三步就可以实现失败自动重跑了,不过添加了重跑功能后会发现测试结果的邮件中用例的个数增加了,比如我只有一个用例,失败重跑了2次,一共运行3次,测试结果中显示的用例个数会是3个,那接下来就需要解决这个问题了。

这个我们通过重写TestListenerAdapter中的onFinish方法实现:

4、写一个 TestngListener.java 监听接口

把listener添加到testng.xml中,当前testng.xml为:

<listener class-name="com.testNG.***.RetryListener" />

<listener class-name="com.testNG.***.TestngListener" />

总结: 使用testng的listener,重写testng的retry方法和transform方法。

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

本文分享自 软测小生 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档