Unitest生成HTML测试报告

定义

HTML测试报告就是执行完测试用例后, 以HTML(网页)方式将执行结果生成报告

HTML生成报告方式

1. TextTestRunner生成 (UnitTest 自带)
2. HTMLTestRunner(第三方模板) 【重点】

TextTestRunner生成 报告示例

用例

case文件夹

test01.py
# 导包
import unittest

# 新建测试类
class Test01(unittest.TestCase):
    def test01(self):
        print("Test02_test01")
    def test02(self):
        print("Test02_test02")

 test02.py

# 导包
import unittest

# 新建测试类
class Test01(unittest.TestCase):
    def test01(self):
        print("Test02_test01")
    def test02(self):
        print("Test02_test02")

运行脚本 

 scripts文件夹

run_main.py

版本一:控制台输出结果

# 导包
import unittest
# 定义 测试套件
suite = unittest.defaultTestLoader.discover("../case")
# 执行最初版
runner = unittest.TextTestRunner()
runner.run(suite)

"""
Test01_test01
Test01_test02
Test02_test01
Test02_test02
....
----------------------------------------------------------------------
Ran 4 tests in 0.000s

OK
"""

 版本二:报告内容写入txt,需先了解以下内容

以下是 TextTestRunner 的各个参数及其含义:

  1. stream

    • 类型:文件对象
    • 默认值:sys.stderr
    • 说明:用于输出测试结果的流(例如控制台、文件等)。默认情况下,测试结果会输出到标准错误输出(sys.stderr)。
  2. descriptions

    • 类型:布尔值
    • 默认值:True
    • 说明:是否在输出结果中包含测试用例的描述。描述通常是测试方法的 docstring(文档字符串)。
  3. verbosity

    • 类型:整数
    • 默认值:1
    • 说明:控制输出的详细程度。可选值如下:
      • 0:安静模式,只有测试结果摘要(包括总数、成功数、失败数等)。
      • 1:默认模式,每个成功的测试用例输出一个点(.),每个失败的测试用例输出一个 F
      • 2:详细模式,输出每个测试用例的名称和结果。
# 导包
import unittest
# 定义 测试套件
suite = unittest.defaultTestLoader.discover("../case")

# 执行txt版本
with open("../report/report.txt", "w", encoding="utf-8") as f:
    runner = unittest.TextTestRunner(stream=f, descriptions="测试报告演示", verbosity=2)
    runner.run(suite)

# txt中显示的内容
test01 (test01.Test01.test01) ... ok
test02 (test01.Test01.test02) ... ok
test01 (test02.Test01.test01) ... ok
test02 (test02.Test01.test02) ... ok

----------------------------------------------------------------------
Ran 4 tests in 0.000s

OK

HTMLTestRunne测试报告 生成步骤分析

1. 复制HTMLTestRunner.py文件到项目文件夹

2. 导入HTMLTestRunner、 unittest包

3. 生成测试套件
        suite = unittest.TestSuite()
        suite.addTest(TestLogin("test_login"))
        suite = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")

4. 设置报告生成路径和文件名
        file_name = "./report/report.html"

5. 打开报告 with open(file_name,'wb') as f:

6. 实例化HTMLTestRunner对象:
        runner = HTMLTestRunner(stream=f,[title],[description])
        参数说明:
                stream: 文件流, 打开写入报告的名称及写入编码格式)
                title: [可选参数], 为报告标题, 如XXX自动化测试报告
                description: [可选参数], 为报告描述信息; 比如操作系统、 浏览器等版本

7. 执行: runner.run(suite) 

"""
    目标:基于unittest框架执行生成html版报告
    操作:
        1. 复制HtmlTestRunner.py文件到指定目录
        2. 导包 from HTMLTestRunner import HTMLTestRunner
        3. 获取报告存放文件流,并实例化HTMLTestRunner类,执行run方法
"""
# 导包
import unittest

import time

from  tools.HTMLTestRunner import  HTMLTestRunner

# 定义 测试套件
suite = unittest.defaultTestLoader.discover("../case", pattern="test*.py")
# 定义报告存放路径及文件名称
report_dir = "../report/{}.html".format(time.strftime("%Y_%m_%d %H_%M_%S"))
# 获取报告文件流 并执行
with open(report_dir, "wb") as f:
    HTMLTestRunner(stream=f,
                   title="XX项目自动化测试报告",
                   description="操作系统 win7").run(suite)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值