自动化坑点纪要

本文聚焦Python自动化测试,使用HTMLTestRunner生成测试报告时遇到两个问题。一是报错TypeError,原因可能是open方法只可读,将其修改即可;二是出现特定提示,需修改HTMLTestRunner脚本第632行代码来解决。
部署运行你感兴趣的模型镜像

一、生成测试报告时遇到问题 TypeError: a bytes-like object is required, not ‘str’

项目场景:

场景:使用python做自动化测试,用HTMLTestRunner生成自动化测试报告

问题描述:

例如:做自动化测试时,用HTMLTestRunner生成自动化测试报告,报错TypeError: a bytes-like object is required, not ‘str’

Traceback (most recent call last):
  File "D:\AppFiles_F\Test\ui-test\htmltestrunner\get_report.py", line 17, in <module>
    runner.run(discover)
  File "D:\software\Programs\Python\Python312\Lib\HTMLTestRunner.py", line 631, in run
    self.generateReport(test, result)
  File "D:\software\Programs\Python\Python312\Lib\HTMLTestRunner.py", line 692, in generateReport
    self.stream.write(output)
TypeError: a bytes-like object is required, not 'str'

原因分析:

上网查找解决方法时,都会告诉是python2和python3的版本问题,或是str/bytes类型问题。但是现在的python3版本都已经做了修改,不需要自己手动改动,如果上述两种问题都没能解决,可以查看自己的open方法是否是只可读。

解决方案:

改前:open(r"…/report/test_report%s.html"%get_time,‘wb’)
改后:open(r"…/report/test_report%s.html"%get_time,‘w’)

二、提示:<_io.TextIOWrapper name=’’ mode=‘w’ encoding=‘utf-8’>

解决方法:

将HTMLTestRunner脚本的第632行的 :
print >> sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)
或:
print(sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime))
修改为:
sys.stderr.write(’\nTime Elapsed: %s\n’ % (self.stopTime - self.startTime))
PS:HTMLTestRunner脚本一般存放在Python安装地址的Lib文件夹下

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值