欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python3 引用HTMLTestRunner生成测试报告

程序员文章站 2024-01-16 22:55:46
...

Appium环境搭建以及运行测试用例的工具都在前两篇文章中介绍过了链接如下,今天就简单学习一下如何在跑完测试用例之后生成一张简单的测试报告。

Appium环境搭建: https://blog.csdn.net/CCstar1/article/details/101543977

Appium+VSCode环境搭建:https://blog.csdn.net/CCstar1/article/details/102498604

一.下载HTMLTestRunner.py

下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

Python3 引用HTMLTestRunner生成测试报告

下载下来记得一定要放在lib/python3.7 路径下,参考我的完整路径是:

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/HTMLTestRunner.py

二.修改HTMLTestRunner.py文件满足python3

由于我们下载到的这个HTMLTestRunner.py文件是基于python2写的,并不能在python3使用。我们需要手动更改文件使之可以在python3中使用。下面详细介绍需要更改的几个地方。这里我使用VSCode打开修改。

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)
更改为:

sys.stderr.write('\nTime Elapsed: %s\n' % (self.stopTime - self.startTime))
4、第642行

if not rmap.has_key(cls):
更改为:

if cls not in rmap:
5、第687行

self.stream.write(output.encode('utf8'))
更改为:

self.stream.write(output)
6、第766行

uo = o.decode('latin-1')
更改为:

uo = o
7、第772行

ue = e.decode('latin-1')
更改为:

ue = e
8、第778行

output = saxutils.escape(uo+ue),
更改为:

output = saxutils.escape(str(uo)+ue),

这里由于我存储和多次复制粘贴导致HTMLTestRunner乱码浪费了很多时间,和我一样对Python算小白如果引用遇到问题可以向这个方面考虑。

三.编写代码生成测试报告

新建TestRunner.py,如下

import time
import os
import unittest

from HTMLTestRunner import HTMLTestRunner
test_dir = '/Users/xxx/Downloads/VSCodeAutoTest'
discover = unittest.defaultTestLoader.discover(test_dir, pattern="Test1*.py")

if __name__ == "__main__":
    report_dir = './TestReport'
    os.makedirs(report_dir, exist_ok=True)
    now = time.strftime("%Y-%m-%d %H-%M-%S")
    report_name = '{0}/{1}.html'.format(report_dir, now)

    with open(report_name, 'w')as f:
        runner = HTMLTestRunner(stream=f, title="测试报告", description="本测试报告内容包含登录简单测试")
        runner.run(discover)

在VSCode终端输入:

python3 TestRunner.py

之后就会在TestReport目录下生成2019-10-12 14-46-48.html测试报告,用浏览器打开如下图所示:

Python3 引用HTMLTestRunner生成测试报告

简单的测试报告就生成了,欢迎大家提问一起学习。 

相关标签: 自动化测试