美文网首页
Python:unittest+HTMLTestReport生成

Python:unittest+HTMLTestReport生成

作者: 紫荆逸 | 来源:发表于2025-09-12 22:52 被阅读0次

前言:

之前查资料unittest生成测试报告 html 用的基本都是HTMLTestRunner生成 html 测试报告。

比如:

import unittest
import HTMLTestRunner

discover = unittest.defaultTestLoader.discover('./', pattern='test_*.py')

if __name__ == '__main__':
    fp = open('./report/report.html', 'wb')
    run = HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title = 'SeleniumGrid方式运行用例',
        description='单Node节点运行用例')

    run.run(discover)
    fp.close()

但是,经过测试,HTMLTestRunner现在无法下载使用,所以无法生成 html,不过经过我发现另一种可以生成 html 的简单方法,和HTMLTestRunner使用方法差不多,它就是HTMLTestReport

一、HTMLTestReport安装和使用

使用 PyCharm+Python

1. 安装HTMLTestReport:

终端输入:pip install htmltestreport

或者代码中直接用,没安装会提示安装的,安装很快完成。

2. 使用HTMLTestReport生成 html:

import unittest
from htmltestreport import HTMLTestReport

discover = unittest.defaultTestLoader.discover('./', pattern='test_*.py')


if __name__ == '__main__':
    # 实例化HTMLTestReport对象
    report_path = './report/report.html'
    report = HTMLTestReport(report_path, 
                            title='SeleniumGrid方式运行用例', 
                            description='单Node节点运行用例')
    # 执行测试套件
    report.run(discover)

二、完整案例如下:

实现:打开百度首页,输入内容并搜索。

代码如下:

1. test_baidu.py代码:(实现页面元素操作)

from selenium import webdriver
from time import sleep
import unittest
from selenium.webdriver.common.by import By


class TestBaidu(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Firefox()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_search_cn(self):
        self.driver.get('https://www.baidu.com/')
        self.driver.find_element(By.ID, 'chat-textarea').send_keys('思课帮')
        self.driver.find_element(By.ID, 'chat-submit-button').click()
        sleep(2)

    def test_search_en(self):
        self.driver.get('https://www.baidu.com/')
        self.driver.find_element(By.ID, 'chat-textarea').send_keys('Thinkerbang')
        self.driver.find_element(By.ID, 'chat-submit-button').click()
        sleep(2)


if __name__ == '__main__':
    unittest.main()

2. run.py代码:(运行test_baidu.py并生成 html测试报告)

# 生成 html报告

import unittest
from htmltestreport import HTMLTestReport

discover = unittest.defaultTestLoader.discover('./', pattern='test_*.py')


if __name__ == '__main__':
    # 实例化HTMLTestReport对象
    report_path = './report.html'
    report = HTMLTestReport(report_path,
                            title='测试百度搜索功能',
                            description='中、英文都测试一次')
    # 执行测试套件
    report.run(discover)

3. 执行结果:

(1) 文件目录:运行后生成 report.html文件
运行后生成 report.html文件.png
(2) PyCharm 中 run.py运行结果显示:
PyCharm中 run.py运行结果.png
(3) 用浏览器打开 report.html
打开方式一.png
打开方式二.png

下面是打开后的报告内容:

report.html页面1.png report.html页面2.png

相关文章

网友评论

      本文标题:Python:unittest+HTMLTestReport生成

      本文链接:https://www.haomeiwen.com/subject/wowkzjtx.html