美文网首页
安卓自动化测试总结(四)--用例执行失败后重复执行、每次运行失败

安卓自动化测试总结(四)--用例执行失败后重复执行、每次运行失败

作者: 野草2060 | 来源:发表于2016-07-03 23:35 被阅读491次

    用例执行不成功时,重复执行的最多次数

        自动化测试用例执行时,由于这样或那样的原因,总会出现运行不成功的情况,这会导致用例执行成功率很难达到100%。

        为了提高用例执行成功率,我们使用WaitFor方法、最大最小超时时间来提高每个用例单次执行的成功率。不过,超时时间设的太大,也会导致每次运行多个用例时,使用的时间明显比超时时间设为默认时间时长很多。而设的较小,失败率又会明显增大。

        因此,我们想到junit提供的运行失败时,多次执行失败用例的方法,来提高安卓自动化用例的执行成功率。这样,设置为默认超时时间或者其他感觉合适的超时时间后,在大部分用例测试结果正常后,还会多次执行某些界面异常导致的用例失败,这能保证提高成功率的情况下,不明显增加整体运行时间。

    @Override

    protected void runTest( )throws Throwable {

    int retryTimes=TestConst.retryTimes; //重试次数

    while (retryTimes> 0)  {

      try {

        super.runTest();

        ActivityInstrumentationTestCase5.timeSet(false); //调整超时时间的值,                                //ActivityInstrumentationTestCase5为继承ActivityInstrumentationTestCase2的类

         break;

      } catch (Throwablet) {

          ActivityInstrumentationTestCase5.timeSet(true);

          if (retryTimes> 1) {

               retryTimes--;

               tearDown();

               setUp();

               continue;

             } else {

                  ActivityInstrumentationTestCase5.timeSet(false);

                  throw t;

              }

          }

       }

    }

    每次重复执行时,设置怎样的超时时间

        目前的超时设置策略是,第一次执行失败后,第二次执行则超时时间加倍,第三次则再次加倍。这样设置的原因是,刚开始开发界面自动化时,失败率比较高,而增加超时时间,确实提高了成功率。

        目前,每次运行20个用例,成功率都是100%,10次运行,最多有一次某个用例失败。所以现在可以改变策略,以提高测出问题的几率,而不是成功率了,因为如果是显示某些界面较慢,也可能是故障的,而不是测试程序的问题。这时,可以保持超时时间和以前相同,或者稍微大些;甚至根据网络情况,来用某个系统乘以默认超时时间。

    protected static void timeSet(boolean b) {

       if(b) {

           。。。。。。

        }else{

          。。。。。。

      }

    }

    相关文章

      网友评论

          本文标题:安卓自动化测试总结(四)--用例执行失败后重复执行、每次运行失败

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