首页 > 其他 > 详细

pytest框架优化——将异常截屏图片加入到allure报告中

时间:2019-10-19 22:03:33      阅读:364      评论:0      收藏:0      [点我收藏+]

痛点分析:

在做allure定制化的时候,关于附件添加这一块,我们在代码里可以添加我们准备好的附件,这里用图片,通过下面的方法就能实现

allure.attach(file, ‘图片标题, allure.attachment_type.PNG)

技术分享图片

技术分享图片

那如果我们执行测试用例生成的allure测试报告中,能把失败或者异常的测试用例的异常截图也自动添加到allure报告中,岂不更完美?

问题思考:

1.用例执行完后,异常截图图片都在OutPus目录下,怎么去跟用例关联?

2.用什么方法去添加到allure报告中?

3.异常截图那么多,我怎么把相关的异常截图图片添加到对应的用例下呢?

4.考虑到了代码的执行顺序了吗?

5.截图是从哪里生成的,是调用了什么方法才会生成异常截图图片?

......

我带着以上等等疑问,慢慢摸索,总结出很重要的三点:

  • 代码的执行顺序
  • 异常截图是从driver.save_screenshot(file_name)方法中产生
  • 异常截图的方法是封装在basepage模块下

解决方法:

因为测试用例执行过程中,测试步骤会调用PageObjects里面的方法,而PageObjects里面的方法又调用的是basepage里面的一系列action方法,而action方法封装里面又调用了截屏捕获的方法,所以我们只需要将allure.attach()方法添加到截屏捕获的方法里面就可以了。

技术分享图片

技术分享图片

点开异常截图,可以看到具体的图片内容:

技术分享图片

代码如下:

    def save_screenshot(self, img_doc):
        ‘‘‘
        页面截屏保存截图
        :param img_doc: 截图说明
        :return:
        ‘‘‘
        file_name = OUTPUTS_DIR + "\\{}_{}.png".format(datetime.strftime(datetime.now(), "%Y%m%d%H%M%S"), img_doc)
        self.driver.save_screenshot(file_name)
        with open(file_name, mode=rb) as f:
            file = f.read()
        allure.attach(file, 异常截图, allure.attachment_type.PNG)
        case_logger.info("页面截图文件保存在:{}".format(file_name))

 

pytest框架优化——将异常截屏图片加入到allure报告中

原文:https://www.cnblogs.com/xiaogongjin/p/11705914.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!