美文网首页
Junit4 @Rule方法--Rerun失败测试用例

Junit4 @Rule方法--Rerun失败测试用例

作者: 初心不忘J | 来源:发表于2018-02-28 17:14 被阅读0次

一、背景
在做自动化测试中,经常会出现一些由于各种因素引起的假性失败(非bug),例如:页面未加载出来、打开app失败等现象。每次检查测试结果,需要花一些时间去鉴别是否为bug,采用的方法是再运行一遍,于是:是否可以在case执行失败时自动rerun?

二、实现Rule
Junit4 提供了一些高级特性,如@Rule,框架自带了一些Rule,也可以自己定义。以下自定义一个Rule,实现失败重跑机制:
//使用自定义Rule
@Rule
public RetryRule retryRule = new RetryRule(2);

//实现TestRule接口
public class RetryRule implements TestRule {
private int retryCount;

    public RetryRule(int retryCount) {
        this.retryCount = retryCount;
    }

    public void setRetryCount(int retryCount) {
        this.retryCount = retryCount;
    }

    public Statement apply(Statement base, Description description) {
        return statement(base, description);
    }

    private Statement statement(final Statement base, final Description description) {
        return new Statement() {
            @Override
            public void evaluate() throws Throwable {
                Throwable caughtThrowable = null;
                // implement retry logic here
                for (int i = 0; i < retryCount; i++) {
                    try {
                        base.evaluate();
                        HFLog.logMessage("-----------RetryRunner-----------: Test case success, " + (i + 1));
                        return;
                    } catch (Throwable t) {
                        caughtThrowable = t;
                        HFLog.logMessage("-----------RetryRunner-----------: Test case failed, " + (i + 1) + ", " + getExceptionMsg(caughtThrowable));
                    }
                }
                throw caughtThrowable;
            }
        };
    }

三、参考资料:
https://segmentfault.com/a/1190000005923632
https://tonydeng.github.io/2016/05/11/junit-more-feature/
http://haibin369.iteye.com/blog/2088541

相关文章

  • Junit4 @Rule方法--Rerun失败测试用例

    一、背景在做自动化测试中,经常会出现一些由于各种因素引起的假性失败(非bug),例如:页面未加载出来、打开app失...

  • 五、Spring ——单元测试

    1、JUnit4 JUnit测试用例的完整生命周期要经历一下阶段:类级初始化资源处理,方法级初始化资源处理、执行测...

  • JUnit4中的Rule注解

    @Rule 注意所有声明的rule对象前面都是public final;以下是Junit4中已经实现的rule: ...

  • Junit4简单教程

    Junit4简单教程 测试用例不是用来证明你是对的,而是用来证明你没有错。 1.Junit基本使用 1.测试方法上...

  • TestNG实践——2.用例失败重试

    @Test 用例失败重跑,retry最终一定是针对测试用例得,一个方法只有被@Test标注了才是测试用例,那么我们...

  • python unittest (draft)

    使用unittest.main() 方法执行 输出: 使用“unittest.main()”执行测试用例时,每个测...

  • 软件测试流程设计—黑盒测试用例设计方法

    第1章 测试用例设计方法 测试用例设计方法包括黑盒测试用例设计方法和白盒测试用例设计方法,下面 分别进行介绍。 1...

  • 单元测试JUnit4--知识点速查

    JUnit4的测试类不再需要继承测试类。 直接IDE支持用JUnit测试。 测试用例@Test目的: 不是用来证明...

  • 软件测试基本流程

    1.需求分析(产品经理) 2.编写测试用例(测什么,怎么测) 3.评审测试用例 4.搭建测试环境 5.等待开发提交...

  • 面试问题

    1、 2、 3、 4、 5、 6、 7、 8、 9、 1、 2、 正交表测试用例设计方法的特点: 3、 单元测...

网友评论

      本文标题:Junit4 @Rule方法--Rerun失败测试用例

      本文链接:https://www.haomeiwen.com/subject/cwrixftx.html