大家好,我是杨叔。每天进步一点点,关注微信公众号【程序员杨叔】,了解更多测试开发技术知识!
Unittest框架作为Python自动化测试的入门框架,很多小伙伴参照网上的一些教程使用Unittest+HTMLTestRunner框架作为自动化测试框架开始学习时,发现自己无法安装HTMLTestRunner。
安装时报错如下:
HTMLTestRunner是针对Python2.x的unittest单元测试框架用于生成HTML测试报告的扩展。但是,它并不支持Python3.x。即使参照网上的一些教程,修改HTMLTestRunner源码后能匹配Python3,最原始的htmlrunner生成的HTML报告也不是很好看:
针对这种情况,网上已经有大佬帮我们优化了官方的HTMLTestRunner的测试报告模板并且直接兼容python3了,不需要重复造轮子了。并且也集成了邮件发送功能,感谢前辈无私奉献!
下载地址:
https://github.com/SeldomQA/HTMLTestRunner
下载解压后,进入目录下使用以下命令:
python setup.py install
效果图如下:
明显比原生的报告要好看很多。优化后的库有定制的一些LOGO、链接在上面,并且是英文,不太方便。因此为了方便大家使用,杨叔又汉化优化了一版,最终效果如下:
邮件发送报告功能代码示例如下:
import unittest
from TestRunner import HTMLTestRunner
from TestRunner import SMTP
class TestDemo(unittest.TestCase):
def test_success(self):
"""执行成功"""
self.assertEqual(1+1, 2)
if __name__ == '__main__':
suit = unittest.TestSuite()
suit.addTest(TestDemo("test_success"))
report = "./result.html"
with(open(report, 'wb')) as fp:
runner = HTMLTestRunner(
stream=fp,
title='Seldom自动化测试报告',
description='浏览器chrome,平台windows'
runner.run(suit)
# 发邮件功能,注意这里不是填邮箱密码而是授权码,授权码需要去邮箱设置里获取
smtp = SMTP(user="user@qq.com", password="授权码", host="smtp.qq.com")
smtp.sender(to="user@qq.com", attachments=report)
优化的汉化版我已上传到CSDN,需要的小伙伴可以直接下载:
HTMLTestRunner支持Python3版本中文优化版安装包
=========================================================
以上,如果对你有帮助,
欢迎搜索关注我的微信公众号【程序员杨叔】,免费了解获取更多测试相关干货内容资料,一起交流学习~
python3中用HTMLTestRunner.py报importError“:No module named 'StringIO'、dict' object has no attribute 'has_key'解决办法
原因是官网的是python2语法写的,进入HTMLTestRunne模块中,手动把官网的HTMLTestRunner.py改成python3的语法
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.
python3.X下使用过HTMLTestRunner,发现下到的.py是2的语法,不兼容3.X自己就改了一下,把改动的地方发出来,请大神多指教;
首先在官网下HTMLTestRunner.py 文件,并加入到Lib这个就不多说了;
在python shell里输入
>>>import HTMLTestRunner
>>> dir(HTMLTest...
应该把HTMLTestTunner放在python3的lib目录下,但是由于我用的是anaconda安装的python3,所以首先找出Python的安装路径,将其拷贝到该路径下。
import sys
print sys.path
即可查询安装路径
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer= io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行,将uo = o.decode(‘latin-1‘)修改成uo = e
第775行,将ue = e.decode(‘latin-1‘)修改成ue = e
问题原因:HTMLTestRunner通过pip安装会失败
解决办法:1.手动下载HTMLTestRunner.py,地址http://tungwaiyip.info/software/HTMLTestRunner.html
2.将放在F:\Python\Lib文件夹中,即可在程序中导入成功。
二. 环境变量没有问题的前提下 输入安装命令 pip install 模块名
如果你要安装 requests 模块 就输入 pip install requests 回车
如果你要安装selenium 模块 就输入 pip install selenium 回车
Requirement already satisfied: 表示之前已经安装过这个模块
下面的 W
1、首先咱们需要下载HTMLTestRunner.py,但是python3.X以上需要修改部分代码进行适配,因为HTMLTestRunner.py当前是根据Python2.X进行开发的,具体改动这里就不详细说明了,有想了解的可以上网搜下,我这里把已经修改好的版本放在百度网盘了,有需要的人可以直接copy。
链接: https://pan.baidu.com/s/1k0_fxqm_3Tg-4-ZMX47Hww 提取码: n4d5
2、将下载好的HTMLTestRunner.py需要拷贝到到:/Librar
在很早之前,我写过一篇文章关于HTMLTestRunner报告优化的处理:https://www.cnblogs.com/liudinglong/p/12346824.html,后面群友在群里问了一个问题,是关于通过和失败的用例,图标样式和单击响应的问题。虽然很早之前已经帮群友解决了,由于之前工作繁忙,然而一直没有写下来,现在写下来,以便帮助更多的小伙伴们少走弯路。
在之前的案例中,我们完成了自劢化测试的基本能力,也能完成测试的执行工作,但 是还没有做到将测试的结果以报表的形式输出,接下来,在之前的测试基础上加上测试报告的输出。
HTMLTestRunner 介绍
HTMLTestRunner 是 python 标准库 unittest 的扩展,可以生成一个直观的测试报告。 在使用之前需要将 HTMLTestRunner.py 文件放如到 python 的安装目弽下,例如我的 就是 c:\\Python27 目录。
生成测试报告
下我们在之前的 LMD 登陆测试
关于安装: 使用的是pycharm,Python3.6版本 注意:HTMLTestRunner.py可以直接下载,放在D:\pycharm\test\venv\Lib\site-packages目录下(针对我自己的环境,我之前放在Python的文件夹下面,并没有什么用) 小插曲:再次之前,我在PyCharm中最初是使用pip安装过htmltestrunner,命令如下:pip install ht
安装 HTMLTestRunner 库的方法非常简单,直接 pip 就可以了pip install html-testRunner在https://pypi.org/ 中可以直接搜索到,并且官方还提供了详细的文档,操作起来非常的简单官方示例代码:import HtmlTestRunnerimport unittestclass TestStringMethods(unittest.TestCas...
将HTMLTestRunner.py的文件导入到python安装路径下的lib文件夹中
问题:一开始放到了Python/Lib文件夹下 但是其实我这个是用的anaconda安装的,可以在首先查询下Python的安装位置
import sys
print sys.path
即可查询...
通过pip安装HTMLTestRunne失败。则需要通过手动下载。
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载后,把HTMLTestRunner.py 文件复制到Python 安装路径下的lib文件夹中即可。
在python3中用HTMLTestRunner.py报importError“:No mo...