• python UI自动化生成BeautifulReport测试报告并保存截图


    前面已经写过利用BeautifulReport生成测试报告,那么接下来讲讲如何在测试报告里面保存截图

    首先需要在测试用例中定义一个截图的方法:

     # 截图方法
        """
            os.path.abspath:返回当前目录的绝对路径
            传入一个img_name,并存储到指定路径下
        """
        def save_img(self, img_name):
            self.driver.get_screenshot_as_file('{}/{}.png'.format(os.path.abspath('F:\before\lds\img'), img_name))
    

    然后在测试用例中挂载一个装饰器,在用例里面调用save_img方法

    # -*- coding:utf-8 -*- 
    from selenium import webdriver
    import unittest
    import os
    from pages.login_page import LoginPage
    from BeautifulReport import BeautifulReport
    
    url = '........'
    
    
    class LoginPageCase(unittest.TestCase):
        # 截图方法
        """
            os.path.abspath:返回当前目录的绝对路径
            传入一个img_name,并存储到指定路径下
        """
        def save_img(self, img_name):
            self.driver.get_screenshot_as_file('{}/{}.png'.format(os.path.abspath('F:\before\lds\img'), img_name))
    
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            # 定义LoginPage的实例
            cls.login_p = LoginPage(cls.driver)
    
        def setUp(self):
            self.driver.maximize_window()
            self.driver.get(url)
            # 退出登录 清除cookie
            self.driver.delete_all_cookies()
            self.driver.refresh()
    
        # 截图需用到的装饰器,在用例里面调用前面定义的save_img方法
        @BeautifulReport.add_test_img('测试报告')
        def test_01(self):
            """调用login_page里面定义的每个步骤的方法"""
            self.login_p.send_user("用户名")
            self.login_p.send_pwd("12345678")
            self.login_p.click_btn()
            # 断言
            result = self.login_p.text_is_in()
            self.save_img('测试报告')
            self.assertTrue(result == '测试用例失败截图')
    
        def test_02(self):
            """调用login_page里面定义的每个步骤的方法"""
            self.login_p.send_user("")
            self.login_p.send_pwd("123456")
            self.login_p.click_btn()
            # 断言
            result = self.login_p.text_is_in()
            self.assertTrue(result == '用户名或密码错误,请检查拼写')
    
        @classmethod
        def tearDownClass(cls):
            cls.driver.quit()
    
    
    if __name__ == '__main__':
        unittest.main()
    

    运行以上用例,用例失败就会将截图存放在测试报告中。

    运行上面的测试用例,可以写个测试套件将所有的用例文件一起执行,可结合这篇文章来看:https://www.cnblogs.com/wulixia/p/11420315.html

  • 相关阅读:
    使用变焦摄影镜头的10条经验
    Savage 2:灵魂拷问者Linux即时战略游戏
    在FlashCom中检测摄像头和麦克风的方法
    Asp.net 在线转Flv
    linux的启动加密
    一个命令轻轻松松重新初始化Ubuntu软件包
    Firefox扩展开发学习杂记
    使用 XUL 实现浏览器扩展,第 1 部分: 使用用户界面特性创建一个 Firefox 浏览
    ffmpeg参数解释中文详细
    用mencoder解决ffmpeg转换wmv/asf to flv花屏的问题,并支持rm/rmvb
  • 原文地址:https://www.cnblogs.com/wulixia/p/11724201.html
Copyright © 2020-2023  润新知