当前位置: 首页 > news >正文

黑龙江省建设造价协会网站网站运营一月多少钱

黑龙江省建设造价协会网站,网站运营一月多少钱,微信公众平台运营,线上编程培训机构哪家好在UI自动化测试用例执行过程中,经常会有很多不确定的因素导致用例执行失败,比如网络原因、环境问题等,所以我们有必要引入重试机制(失败重跑),来提高测试用例成功率。 在不写代码的情况没有提供可配置方式…

在UI自动化测试用例执行过程中,经常会有很多不确定的因素导致用例执行失败,比如网络原因、环境问题等,所以我们有必要引入重试机制(失败重跑),来提高测试用例成功率。

在不写代码的情况没有提供可配置方式,需要自己实现TestNG提供的接口,并以监听器的方式提供出来才可使用。

一、结合监听器配置

step1:新建Java类TestngRetry实现IRetryAnalyzer接口,复写retry方法

IRetryAnalyzer接口作用:实现此接口可以让失败的用例运行重试机制

public class TestngRetry implements IRetryAnalyzer {private static Logger logger = Logger.getLogger(TestngRetry.class);// 表示当前所重试的次数public static int retryCount = 1;// 表示重试最大次数限制public int maxRetryCount = 2;@Overridepublic boolean retry(ITestResult result) {// TODO Auto-generated method stubif (retryCount <= maxRetryCount) {logger.info("开始重试第" + "【" + retryCount + "】次" );retryCount++;// 如果返回为true表示执行重试机制return true;}// 如果返回为false表示不执行重试机制return false;} 
}

step2:新建Java类RetryListener实现IAnnotationTransformer接口,复写transform方法

IAnnotationTransformer接口作用:在TestNG执行过程中动态修改@Test注解的参数

public class RetryListener implements IAnnotationTransformer {@Overridepublic void transform(ITestAnnotation annotation, Class testClass, ConstructortestConstructor, Method testMethod) {// TODO Auto-generated method stubIRetryAnalyzer iRetryAnalyzer = annotation.getRetryAnalyzer();if (iRetryAnalyzer == null) {annotation.setRetryAnalyzer(TestngRetry.class);} } 
}

step3:在testng.xml配置文件中添加RetryListener监听器即可

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

引入的问题

在运行重试的机制的时候我们会发现一个问题:

如果有引入dataprovider,那么dataprovider的第二组数据以后的用例失败后是不会正常的运行重试机制的

原因:

TestNG自带BUG,新建类TestResultListener继承于TestListenerAdapter,重写里面的onTestSuccess()和onTestFailure方法,在里面将当前的重试次数给置为1

public class TestResultListener extends TestListenerAdapter{@Overridepublic void onTestSuccess(ITestResult tr) {// TODO Auto-generated method stubsuper.onTestSuccess(tr);System.out.println("当前用例执行成功");//修复了TestNG的bug:dataprovider和重试机制冲突问题//用例重试机制有这种情况:当他运行到第一次重试or第二次重试or第三次(没有达到最大的重试次数的时候),有可能执行成功//用例此时会成功TestngRetry.currentRetryCount=1; }@Overridepublic void onTestFailure(ITestResult tr) {// TODO Auto-generated method stubsuper.onTestFailure(tr);System.out.println("当前用例执行失败");TestngRetry.currentRetryCount=1; }@Overridepublic void onTestSkipped(ITestResult tr) {// TODO Auto-generated method stubsuper.onTestSkipped(tr);System.out.println("当前用例执行跳过");} 
}

二、不配置监听器

public class MyRetry implements IRetryAnalyzer {private int retryCount = 0;private static final int maxRetryCount = 3;@Overridepublic boolean retry(ITestResult result) {if (retryCount < maxRetryCount) {retryCount++;return true;}//如果多个@Test方法中用了该注解,因为testng的bug,它new的是同一个MyRetry对象//那么count不清0会报错,因为是一个MyRetry对象,可以人为置为0,但是官网不推荐这么做retryCount = 0return false;}
}使用重试:
//在用例类里面 添加重试属性@Test(retryAnalyzer = MyRetry.class)public void failedLogin3() {}

http://www.yayakq.cn/news/327017/

相关文章:

  • 苏州城乡建设局网站质检员河北seo推广
  • 织梦后台怎么做网站地图公司宣传册怎么制作
  • 图片展示网站建设杭州滨江建行网站
  • 河北网站建设公司排名app制作公司深圳
  • 后台管理网站建设c2c十大平台
  • 滨海做网站公司建设发展集团有限公司
  • 网站设计答辩pptasp门户网站系统
  • 建e网全景制作教程视频榜单优化
  • 做商城微信网站深圳十大工业设计公司
  • 网站开发设计语言商场网站方案
  • 北京电子商务网站建设用dw做网站怎么做出下拉菜单
  • WordPress网站被恶意登录seo整站优化服务
  • 成都犀牛网站建设公司美食网站 原型 html 下载
  • 新手学做免费网站软件上海网站空间
  • 眉山网站建设哪家好青岛网站建设公司排行
  • 企业网站管理系统的运维服务招聘网站开发的流程
  • 低多边形生成网站怎么搭建个人网站电脑做服务器
  • 企业网站建设方案范文小程序商城的服务哪家好
  • 株洲网站优化找哪家网站设计素养
  • 电子商务基础网站建设手机网站建设软件有哪些
  • 联通网站自主备案系统wordpress仿微博主题
  • 林业厅网站建设招标发布html wordpress
  • 互联网博客网站网站建设亿金手指花总14
  • 网站常见程序问题ae模板网站推荐
  • 梅州免费建站四川聚顺成网络科技有限公司
  • 三合一网站建设方案推广公司
  • 网站升级中htmlp2p网站建设教程
  • 大公司网站开发wordpress wp_options
  • shopex 如何看 网站后台wordpress仿站方法
  • 做跨境电商的人才网站wordpress如何生成rss