Python unittest 失败重跑 及异常捕获

Python unittest 单例 失败重跑机制

    #由于公司测试环境存在于Redis连接中断的问题(By peer),导致很多测试接口必须有失败重跑的机制。

1. 请求失败,接口返回(error:"系统错误“,status:9999),所以采用assertEqual 断言来满足次动作。

  •     首先在 setUp 声明一个变量用来保存规则次数
  •     然后再每个case 内部 增加一个if 判断, 主要是通过判断 规则册数是否到阈值,如果已经到了阈值怎主动抛出 异常,从而来实现case 失败后再报告中有失败提示。
  •    在代码内部需要增加异常捕获模块,用来不过 assertEqual断言失败 而进入失败重跑逻辑, 在此逻辑可以进行修改初始化 规则变量的值,让if判断逻辑能够每次执行获取的值都有变化,从而来完成单例 失败重跑逻辑,而且测试报告上面也不会重复记录失败次数。

2不啰嗦了 直接上代码

  • setUp :  
 if self.runNo == 3:
            print("重试次数已达到阈值:%s次,进行下个接口测试。" % self.runNo)
            raise RuntimeError('接口测试执行失败')
            return
  • 用例模块:
        try:
            logging.info("测试开始!")
            代码执行逻辑
            self.assertEqual(0, result['status'], msg='Status状态码错误')
            self.assertNotEqual("", result['data'], msg='data数据不能为空')
        except KeyError as keyerror:
            self.runNo = self.runNo + 1
            print("响应结果错误,与预期不符,Response %s;进入重跑机制,第%s次" % (r.text, self.runNo))
            _Site.test_B_chargeDivisionBi(self)
        except AssertionError as assertionError:
            self.runNo = self.runNo + 1
            print("响应结果错误,与预期不符,进入重跑机制: %s" % assertionError)
            time.sleep(5)
            _Site.test_B_chargeDivisionBi(self)
        except requests.RequestException as e:
            logging.info("请求失败错误是%s" % e)
    

使用了 断言异常捕获和键值捕获 来完成。

 

新手上路,请多关照。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值