博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium case报错重新执行
阅读量:5016 次
发布时间:2019-06-12

本文共 1366 字,大约阅读时间需要 4 分钟。

在做web ui自动化的过程中,经常发现这样一种情况,执行时case报错啦,再重新执行一遍又成功了。

如果不解决这个问题,脚本稳定性就会变差,很让人蛋疼,怎么解决呢:

思路:

      写一个装饰器,装饰在case方法上,case一但出错就抛出错误。能过装饰器去捕获,来控制重新执行case。

 

代码:

def replayCaseFail(num=3):    def _warpper(func):        def warpper(*args,**kwargs):            raise_info = None            rnum = 0            for i in range(num):                rnum +=1                try:                    ret = func(*args,**kwargs)                    if rnum > 1:                        print('重试{}次成功'.format(rnum))                    return ret                except Exception as ex:                    raise_info = ex            print('重试{}次,全部失败'.format(rnum))            raise raise_info        return warpper    return _warpper

 

以上代码,经实际使用没有问题,也可以结合着unittest使用,或者ddt驱动装饰器使用,但要注意位置。

要放在最底层的,最靠近函数的位置。否则其它装饰器有可能会报错。

 

示例代码:

@unittest.skipIf(getRunFlag('CHARGE', 'testCase2') == 'N', '验证执行配置')    @ddt.data(*FillData)    @replayCaseFail(num=3) #case执行失败后,重新执行num次    def testCase2(self,data):        """储值并补开发票"""        # 调用储值功能函数        self.chargeFunc(data)        """补开发票"""        #单击 补开发票按钮        self.charge.clickFillReceipt        #获取 未开票金额        notFillPresent = self.charge.getNotFillPresent(data['txtName'])        #输入 开票金额        self.charge.inputFillPresent(notFillPresent)        #单击 确定 开发票        self.charge.clickFillConfirmBtn

 

转载于:https://www.cnblogs.com/yhleng/p/9592509.html

你可能感兴趣的文章
The Ctrl & CapsLock `problem'
查看>>
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
查看>>
linux故障判断
查看>>
Leetcode 23. Merge k Sorted Lists(python)
查看>>
Java进阶知识点6:并发容器背后的设计理念 - 锁分段、写时复制和弱一致性
查看>>
Makefile ===> Makefile 快速学习
查看>>
face detection[HR]
查看>>
java性能调优工具
查看>>
C# 其他的Url 文件的路径转化为二进制流
查看>>
cmake使用
查看>>
ios7上隐藏status bar
查看>>
构造方法和全局变量的关系
查看>>
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
NOI 2019 退役记
查看>>