web自动化——异常自动截图

一、异常截图场景

  • 场景:
    • 增加自动化测试代码的可测性
    • 丰富报告

二、异常截图实现

2.1、实现原理

  • 装饰器

  • 自动化关键数据记录

    • 截图
    • 日志
    • page_source
  • 目标:代码异常时,截图/打印page_source

    • 解决方案:使用try-except 实现截图/打印page_source
  • 问题1:异常处理后,会影响断言结果

    • 解决方案:在exception之后,在抛出异常
  • 问题2:异常处理代码和业务代码无关,不能耦合

    • 解决方案:使用装饰器装饰用例或方法
  • 问题3:需要通过driver实例来截图/打印page source,必须要先获取driver对象

    • 解决方案:通过self可以拿到实例变量driver
    • 前提条件:1、被装饰的方法是一个实例方法,2、实例需要有实例变量self.driver;
      driver=*args[0].driver
  • 问题4:隐藏小bug,如果被装饰函数有返回值,返回值会丢失

    • 解决方案:在调用被装饰函数时,添加return
      return func(*args, **kwargs)