前面已经写过利用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