自动化测试两个小场景
增加自动化测试代码的可测性
丰富报告
实现代码异常的时候,实现截图和打印page_source
实现方法:try except 配合截图和page_source操作
特别注意1:
在保存截图和页面源码时,一定先创建好images、source_path路径
保存截图:driver.save_screenshot(路径名称)
获取页面源码:driver.page_source()
异常处理会影响用例本身的结果;
解决办法:在except之后,再把异常抛出
代码最后加上:raise Exception;
如果用例失败,抛出异常;否则即使捕获到异常,用例也会通过
特别注意2:
将截图保存到allure报告中
allure.attach.file(截图路径,name=‘image’,attachment_type=allure.attachment_type.PNG)
将页面源码保存到allure中,以文本的形式存储
allure.attach.file(源码路径,name=‘text’,attachment_type=allure.attachment_type.TEXT)
异常捕获处理代码是公共方法和业务代码无关,不能耦合。
解决办法,使用装饰器装饰用例或者相关方法。
思路
先把装饰器架子搭建好
把相关逻辑嵌套进来
特别注意
使用装饰器执行用例,被装饰函数还没有执行,所以还没有self.driver,获取被装饰方法的self,也就是实例对象,通过self就可以拿到声明的实例变量driver
driver = args[0].driver
前提条件:被装饰的方法是一个实例方法,实例需要有实例变量self.driver
解决方法1:获取driver放到函数执行之后
解决方法2:保证使用装饰器的时候,driver已经声明:driver = args[0].driver
一旦被装饰的方法有返回值,会丢失返回值
解决方案:return func(*args, **kwargs)
当用例执行失败allure报告中可以查看截图
当用例执行失败allure报告中可以查看page_source源码
转载自:https://blog.csdn.net/YZL40514131/article/details/129192733