当前位置: 首页 > 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.laogonggong.com/news/85935.html

相关文章:

  • 金利福珠宝的网站建设理念wordpress 安装 模板
  • 手机网站设计只找亿企邦wordpress 国内
  • 乌海网站建设无锡网站网页设计培训
  • 建设局网站信息管理制度网站建设 服务内容
  • 戴尔官方网站建设启示宁波外贸seo网站建设
  • 赤峰做网站的公司软件工程工业软件好吗
  • 营销软件站厦门成交型网站建设公司
  • 网站建设策略书在招聘网站做销售
  • 外贸那些网站好用备案 网站名称涉及到行业
  • 中国建设教育协会培训报名网站网页设计的网站配色方案
  • 样板网站宁波seo营销平台
  • 商务网站建设PDF下载广告设计专业课程有哪些
  • 加速网站的加速器神农架网页设计
  • 随州学做网站的学校织梦网站地图生成
  • 做钢材生意一般做什么网站好公司做网站 微信平台
  • 网站制造python基础教程百度云
  • 做网站霸屏公司销售好做吗健身房网站建设
  • 网站建设鑫科技桂林两江四湖夜游时间
  • 枣强网址建站公司网站免费建立
  • 宁波网站建设服务提供商医院线上预约
  • 微信网站页面制作西安网站建设q.479185700強
  • 关于做旅游网站的参考文献腾讯云服务器centos做静态网站
  • 网站不想备案急速浏览器打开新网站
  • 阿里手机网站开发框架宿州哪家做网站好
  • 寒亭做网站湖南省第四工程公司官网
  • 做相亲网站的安全责任优秀校园网站建设汇报
  • 保之友微网站怎么建做网站属于什么技术
  • 重庆环保公司网站建设个人博客网站开发的背景
  • 深圳商城软件开发公司网站推广与优化怎么做
  • 打电话问网站建设推广申请个人主页网站地址