python生成HTMl报告,unittest Python3 使用HTMLTestRunner.py 报错ImportError: No module named 'StringIO'处理方法

Python3 使用HTMLTestRunner.py 报错ImportError: No module named 'StringIO'处理方法

HTMLTestRunner.py文件是基于Python2的语法,python3使用需要修改语法:

1.>>> 94行

import io  # import StringIO

2.>>> 539行

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 cls in rmap:# if not rmap.has_key(cls):

5.>>> 766行

uo = e # uo = o.decode('latin-1')

6.>>> 772行

ue = e # ue = e.decode('latin-1')

改完后的HTMLTestRunner.py

文件下载不用修改的:

链接:https://pan.baidu.com/s/1orJSihL8U_trJgiOvFaiXQ

提取码:6jxe

复制这段内容后打开百度网盘手机App,操作更方便哦

放在*\python3\script

或者放在当前项目文件夹下

亦或者在python35下的lib文件夹下

(注意最好放在根目录下)

from HTMLTestRunner import HTMLTestRunner #用这个导包会报错的时候就用下面这样的放到根目录下
from pyJIAO.APP.APP.HTMLTestRunner import HTMLTestRunner #用这个导包就不会报错了
python生成HTMl报告,unittest    Python3 使用HTMLTestRunner.py 报错ImportError: No module named 'StringIO'处理方法

python生成HTML报告代码:

#unittest测试框架
#pytest比unittest全面一点
#导包
import requests#导入接口用的包
import unittest
# from HTMLTestRunner import HTMLTestRunner
# .HTMLTestRunner import HTMLTestRunner
from pyJIAO.APP.APP.HTMLTestRunner import HTMLTestRunner
import time
class Test(unittest.TestCase):
# 用于测试用例执行前的初始化工作
def setUp(self):
print("test start")
def test_bbb(self):
# print("test bbb")
url = "http://v.juhe.cn/cccn/to_telecodes.php"
para = {"chars": "北京", "key": "230a1fd1db939079697552e645799c0c"}
# 发送get请求
r = requests.get(url, params=para)
# 获取json数据
print(r.json())
#
# def test_aaa(self):
# print("test aaa")
#
# 用于测试用例执行之后的善后工作
def tearDown(self):
print("test end")
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(Test("test_bbb"))
# suite.addTest(Test("test_aaa"))
now = time.strftime("%Y-%m-%d %H_%M_%S")
# 定义报告存放路径
filename = 'E:\\' + now + 'result.html'
# filename ='test3.html'#报告存放在当前目录
print(filename)
fp = open(filename, 'wb')
# 定义测试报告
runner = HTMLTestRunner(stream=fp, title='测试报告', description='用例执行情况:')
runner.run(suite)
fp.close() # 关闭报告文件

HTMLTestRunner.py文件是基于Python2的语法,python3使用需要修改语法:

1.>>> 94行

import io  # import StringIO

2.>>> 539行

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 cls in rmap:# if not rmap.has_key(cls):

5.>>> 766行

uo = e # uo = o.decode('latin-1')

6.>>> 772行

ue = e # ue = e.decode('latin-1')

改完后的HTMLTestRunner.py

文件下载不用修改的:

链接:https://pan.baidu.com/s/1orJSihL8U_trJgiOvFaiXQ

提取码:6jxe

复制这段内容后打开百度网盘手机App,操作更方便哦

放在*\python3\script

或者放在当前项目文件夹下

亦或者在python35下的lib文件夹下

(注意最好放在根目录下)

from HTMLTestRunner import HTMLTestRunner #用这个导包会报错的时候就用下面这样的放到根目录下
from pyJIAO.APP.APP.HTMLTestRunner import HTMLTestRunner #用这个导包就不会报错了
python生成HTMl报告,unittest    Python3 使用HTMLTestRunner.py 报错ImportError: No module named 'StringIO'处理方法

python生成HTML报告代码:

#unittest测试框架
#pytest比unittest全面一点
#导包
import requests#导入接口用的包
import unittest
# from HTMLTestRunner import HTMLTestRunner
# .HTMLTestRunner import HTMLTestRunner
from pyJIAO.APP.APP.HTMLTestRunner import HTMLTestRunner
import time
class Test(unittest.TestCase):
# 用于测试用例执行前的初始化工作
def setUp(self):
print("test start")
def test_bbb(self):
# print("test bbb")
url = "http://v.juhe.cn/cccn/to_telecodes.php"
para = {"chars": "北京", "key": "230a1fd1db939079697552e645799c0c"}
# 发送get请求
r = requests.get(url, params=para)
# 获取json数据
print(r.json())
#
# def test_aaa(self):
# print("test aaa")
#
# 用于测试用例执行之后的善后工作
def tearDown(self):
print("test end")
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(Test("test_bbb"))
# suite.addTest(Test("test_aaa"))
now = time.strftime("%Y-%m-%d %H_%M_%S")
# 定义报告存放路径
filename = 'E:\\' + now + 'result.html'
# filename ='test3.html'#报告存放在当前目录
print(filename)
fp = open(filename, 'wb')
# 定义测试报告
runner = HTMLTestRunner(stream=fp, title='测试报告', description='用例执行情况:')
runner.run(suite)
fp.close() # 关闭报告文件