一、异常截图场景
- 场景:
- 增加自动化测试代码的可测性
- 丰富报告
二、异常截图实现
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)
-
解决方案:在调用被装饰函数时,添加return