Web自动化框架设计(五)--Report模块

Report模块
需将HTMLTestRunner.py文件放于安装Python的路径下的Lib文件夹下
1.使用Run.py脚本运行所有用例并生成带截图的测试报告

import HTMLTestRunner
import unittest
import os

# 添加测试用例至suite中
def creatsuite():
    suite = unittest.TestSuite()
    test_path = os.path.dirname(os.path.abspath(".")) + os.sep + "testcase"
    discover = unittest.defaultTestLoader.discover(test_path, pattern="*.py")
    for test_suite in discover:
        for test_case in test_suite:
            suite.addTests(test_case)
    return suite


if __name__ == '__main__':
    report_path = os.path.dirname(os.path.abspath(".")) + os.sep + "Report" + os.sep + "report.html"   # 测试报告存放地址
    stream = open(report_path, "wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream=stream, title="测试报告", description="测试报告详情")
    runner.run(creatsuite())

2.在用例中添加截图

from selenium import webdriver

# 定义一个添加截图的函数
    def add_img(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
# 在用例中添加截图(一般在断言失败时添加截图)
        try:
            self.assertEqual(self.driver.find_element_by_xpath(login.login_out_xpath).text, "退出")
            logger.info("test_01:登录成功")
        except AssertionError:   
            self.add_img()              # 调用截图
            self.assertTrue(False)      # 添加这行代码是为了断言失败时在报告中显示为失败
            logger.info("test_01:Test Case execute fail")

你可能感兴趣的:(Web自动化框架设计(五)--Report模块)