首页 > 编程语言 >Python单元测试报告框架PyTestReport

Python单元测试报告框架PyTestReport

时间:2022-12-20 11:36:19浏览次数:61  
标签:__ 框架 PyTestReport Python HTMLTestRunner 单元测试 模板


文章目录

  • 开局一张图
  • 安装
  • 通过pip安装
  • 通过安装包
  • 通过源码(最新版本)
  • 使用
  • 单元测试使用样例
  • 附录


​原文链接​

如果你是Java栈的同学,那么你可能知道extent report测试报告框架。而Python你可能知道HTMLTestRunner测试报告框架。今天要介绍的则是基于HTMLTestRunner的新测试报告框架PyTestReport。

如果Python语言界已经有了​​HTMLTestRunner​​​,那么为什么还要一个​​PyTestReport​​​测试框架呢?原因很简单,因为与​​Extent Report​​​框架相比,​​HTMLTestRunner​​​在界面的优越性上面还是有不少的差距,而​​PyTestReport​​​则意在成为Python语言中的​​Extent Report​​。

开局一张图

这个就是​​PyTestReport​​​的默认主题模板,虽然看上去跟​​Extent Report​​​的众多模块相比,还是稍有逊色显得不是很专业。但是这并不影响我们介绍这款框架,因为它在基于​​HTMLTestRunner​​​进行改良之后开始支持模板扩展了,也就是说将来它可以拥有和​​Extent Report​​同步样式的报告模板。

所以如果你对此框架还有兴趣,就一起来看下如果快速的使用和扩展该框架的主题模板。如果你具有较好的CSS功底,那么欢迎来为我们的主题模板舔砖加瓦_!开源合作相关请点击​​PyTestReport的github地址​​查看详情。

安装

通过pip安装

pip install PyTestReport

通过安装包

可通过发布的安装包进行安装,具体安装包可在dist目录查找。

pip install PyTestReport-0.1.X-py3-none-any.whl

通过源码(最新版本)

pip install git+https://github.com/five3/PyTestReport.git

或者

git clone https://github.com/five3/PyTestReport.git
cd PyTestReport
python setup.py build
python setup.py install

使用

PyTestReport可用通过多种方式运行,分别如下:

  • 单元测试
  • lib库引入(后续支持)
  • 命令行(后续支持)
  • REST API(后续支持)

单元测试使用样例

import unittest
import pytestreport

class MyTest(unittest.TestCase):
def testTrue(self):
self.assertTrue(True)

if __name__ == '__main__':
pytestreport.main(verbosity=2)

以这种方式执行之后,默认会在当前文件夹下生成一个​​PyTestReport.html​​日志文件,且这个文件名和样式模板都不可以重新指定的。

注意:这种方式执行时,如果使用Pycharm等IDE,确保不是以IDE的内建单元测试框架来执行的;或者直接通过命令行来执行。

import unittest
from pytestreport import TestRunner

class MyTest(unittest.TestCase):
def testTrue(self):
self.assertTrue(True)

if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(MyTest))

with open(r'/path/to/report.html', 'wb') as fp:
runner = TestRunner(fp, title='测试标题', description='测试描述', verbosity=2)
runner.run(suite)

这种方式适合批量加载和执行测试用例,从测试文件的外部来导入测试用例并执行。这里可以指定具体的结果文件路径和测试标识等信息。

这里使用的是默认模板主题,如果想要使用其它模板主题,可以通过制定模板的主题文件来实现。比如:使用遗留模板的方式如下所示。

from pytestreport import TestRunner
...
runner = TestRunner(fp, title='测试标题', description='测试描述', verbosity=2,
htmltemplate='legency.html', stylesheet='legency.css', javascript='legency.js')

附录

获取更多关于Python和自动化测试的文章,请扫描如下二维码!

Python单元测试报告框架PyTestReport_PyTestReport

标签:__,框架,PyTestReport,Python,HTMLTestRunner,单元测试,模板
From: https://blog.51cto.com/u_15918230/5954640

相关文章

  • Python面试常见算法题集锦(递归部分)
    0x1前言开始学习python基础的时候,有以下几种算法是面试中常见的,也是前期学习python的时候可以连带学习了解的,不卡门槛哟0x2实现算法的方式很多种,而算法的实现也是分程......
  • python2.X编码问题梳理
    首先这些问题只有在python2.X版本出现,因为3.X版本中python环境就只有unicode类型的字符串了,即所有程序中处理的都会自动转换成unicode字符串。那么2.X......
  • python抓网页资源小脚本
    #!/usr/bin/envpython#coding:utf-8importurllibdeffilter_src(file_name):resource_list=[]f_obj=open(file_name)forf_lineinf_obj:if'......
  • python中的编解码攻略
    正如其他语言一样,在Python的世界里也有有字符的编解码问题;有的在命令行回显时出现,有的在读取文件时出现,有的在执行命令时出现,有的在读取数据库时出现,不尽相同。注:如未特别申......
  • python PIL图片简单处理
    #!/usr/bin/envpython#-*-coding:utf-8-*-fromPILimportImagef=r'1.jpg'defresize(fn,width=None,height=None):printfnim=Image.open(fn)......
  • python中telnetlib模块的使用
    python下能支持telnet的模块telnetlib是内置模块,直接import就可以了,其基本的使用方法也是比较简单的。 #encoding=utf-8defdo_telnet(Host,username,password,finish,......
  • python模块的打包
    模块安装:需要安装对应版本的setuptools模块,这是一个python的模块打包工具。(可以在pypi上找到)样例代码:新建test.py文件,内容如下:print"showme"新建一个setup.py编译文......
  • python 网站爬虫需要哪些技术?
    对于从事网络爬虫行业的资深技术员来说,正常只要学会下面几点,基本就能够独立完成爬虫任务。学Python爬虫需要学习的八个知识点:1、HTMLHTML被称为超文本标记语言,有着一系......
  • 日志切割: logrotate、python、shell实现
    对于Linux系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发......
  • 用Python来写个小型购物车程序
    0x1前言Python语言能做很多东西的,像数据分析啊、自动化、开发、爬虫(真的很棒哟,初学者玩很有成就感的啊哈哈)等等还有挺多。0x2用Python编写的一个小型购物车程序impor......