30-unittest生成测试报告(HTMLTestRunner插件)

2024-06-09 04:52

本文主要是介绍30-unittest生成测试报告(HTMLTestRunner插件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        批量执行完测试用例后,为了更好的展示测试报告,最好是生成HTML格式的。本文使用第三方HTMLTestRunner插件生成测试报告。

一、导入HTMLTestRunner模块

        这个模块下载不能通过pip安装,只能下载后手动导入,下载地址是:http://tungwaiyip.info/software/HTMLTestRunner.html。

        Download下的HTMLTestRunner.py文件就是我们需要下载的包,下载后将其手动放到python安装文件的lib目录下。

二、生成测试报告

        这里使用前一篇文章中的加载测试用例相关代码:29-unittest批量执行案例-CSDN博客。

        HTMLTestRunner主要有三个参数:

  • stream:测试报告写入文件的存储位置。
  • title:测试报告的标题。
  • description:测试报告的描述。
import unittest
import os
import HTMLTestRunner# 1.指定测试用例所在的目录
case_path = os.path.join(os.getcwd(), 'case')# 2.指定测试报告存放的位置
report_path = os.path.join(os.getcwd(), 'report')# 3.通过discover加载测试用例
def get_all_case():discover = unittest.defaultTestLoader.discover(case_path, pattern='test*.py')return discoverif __name__ == '__main__':# 4.html测试报告文件的路径report_abspath = os.path.join(report_path, 'result.html')# 5.执行测试用例,并生成测试报告fp = open(report_abspath, 'wb')runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='我的自动化测试报告', description='V1.0')runner.run(get_all_case())fp.close()

三、No module named 'StringIO'报错

1)原因分析

        执行上述代码后,会报错:No module named 'StringIO'

        原因:我用的是Python 3.X版本,而下载的HTMLTestRunner适用于Python2.X。

2)解决办法

        修改HTMLTestRunner.py文件源码,使得HTMLTestRunner可以在Python 3.X版本中正常使用。

  1. 第94行,将import StringIO修改成import io。
  2. 第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
  3. 第631行,将print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
  4. 第642行,将if not rmap.has_key(cls): 修改成if not cls in rmap:
  5. 第766行,将uo = o.decode('latin-1')修改成uo = e
  6. 第772行,将ue = e.decode('latin-1')修改成ue = e

        将HTMLTestRunner源码以上内容修改后,重新运行脚本发现一切正常并在相应路径下生成了测试报告,如图所示:

四、测试报告详情

        找到测试报告文件,用浏览器打开,点开View列中的Detail可以查看详细描述。

        在测试报告中,为了让测试用例带有中文描述,可以在测试方法中添加注释,比如:在baidu.test_01.py脚本添加如下注释,重新运行后查看测试报告。

import unittestclass Test(unittest.TestCase):def test01(self):'''测试用例test01,账号:XXX,密码:YYY'''print('执行测试用例:test_01.test01')def test02(self):print('执行测试用例:test_01.test02')def test03(self):'''测试用例test03,关键词:ZZZ'''print('执行测试用例:test_01.test03')if __name__ == '__main__':unittest.main()

这篇关于30-unittest生成测试报告(HTMLTestRunner插件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044264

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结