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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM