此为系列博客
代码地址: https://gitee.com/UncoDong/git-for-csdn
HTMLTestRunner
使用HTMLTestRunner进行图表可视化,首先需要下载HTMLTestRunner.py文件,是在https://github.com/huilansame/HTMLTestRunner_PY3/blob/master/HTMLTestRunner_PY3.py获得的。
由于CSDN的文件上传后会自动给你添下载所需积分。。所以我把HTMLTestRunner上传到网盘了
链接:https://pan.baidu.com/s/1OVf4XYbSlN8cY90UxhBtig
提取码:nzmv
注:如果是通过上述的github代码获取到的文件,直接使用会报错TypeError: write() argument must be str, not bytes
,此时要找到这么一句代码self.stream.write(output.encode('utf8'))
,给改成self.stream.write(output)
,如下图
当下载好文件后,使用from HTMLTestRunner import HTMLTestRunner
导入该类就可以直接使用了。按照顺序了来构建项目:
1 UnitTest测试文件
首先写一个UnitTest框架的测试文件TEST.py
,代码如下
import unittest
class TestMethods(unittest.TestCase):
# 通过测试
def test_pass(self):
self.assertEqual(1+1,2)
# 没通过测试
def test_failed(self):
self.assertEqual(1 - 1, 2)
# 报错
def test_error(self):
self.assertEqual(1 - 2, num)
if __name__ == '__main__':
unittest.main()
2 测试可视化文件
然后编写将测试结果可视化的文件PieTest.py
,代码如下:
import unittest
import time
import os.path
from HTMLTestRunner import HTMLTestRunner
class TestRunner(object):
# 初始化要用到的字符串
def __init__(self, cases="./", title=u'自动化测试报告', description=u'环境:windows 10'):
self.cases = cases
self.title = title
self.des = description
# 开始测试
def run(self):
# 生成report文件夹
for filename in os.listdir(self.cases):
if filename == "report":
break
else:
os.mkdir(self.cases + '/report')
# 获取当前时间
now = time.strftime("%Y-%m-%d_%H_%M_%S")
# 报告结果写入html文件
with open('./report/' + now + "_result.html", 'w', encoding='utf-8') as fp:
# 运行./路径下的TEST.py文件,视自己的情况修改路径
tests = unittest.defaultTestLoader.discover("./", pattern='*TEST.py', top_level_dir=None)
runner = HTMLTestRunner(stream=fp, title=self.title, description=self.des)
runner.run(tests)
if __name__ == '__main__':
test = TestRunner()
test.run()
可以看到导入了HTMLTestRunner.py
包,说明PieTest.py
和它在同一路径下,最终的项目目录如下: