python接⼝⾃动化(⼆⼗⼋)--html测试报告——下(详解)
  五⼀⼩长假已经结束了,想必⼤家都吃饱喝⾜玩好了,那就继续学习吧。⼀天不学习,⾃⼰知道;两天不学习,对⼿知道;三天不学习,⼤家知道;⼀周不学习,智商输给猪。好了开个玩笑都逗⼤家⼀乐,但是想想还是有道理的。那就进
⼊正题:上⼀篇我们批量执⾏完⽤例后,已经⽣成的测试报告是⽣成 HTML 格式的。但是我们可以看出那个官⽅的测试报告既不美观也不⼤⽅,我们这⾥需要优化⼀下,优化的让⼈赏⼼悦⽬,就和看到⼀个美⼥⼀样看了⼀眼,忍不住回头再多
看⼀眼  - _ - 并且把上⼀篇遇到的问题列举解决⼀下。
由于 HTMLTestRunner.py 原本就是python2版本,⽬前还没到python3版本,所以需要我们⾃⼰修改 HTMLTestRunner.py ⽂件。
问题⼀:No module named StringIO
原因:python 3 中没有 StringIO 这个模块。这⾥我们需要使⽤io 这个模块来代替。
解决⽅法:
第94⾏引⼊的名称要改,从 import StringIO 改成import io。
相应的,539⾏ self.outputBuffer = StringIO.StringIO() 要改成self.outputBuffer = io.BytesIO()
问题⼆:AttributeError: 'dict' object has no attribute 'has_key'
原因:python 3 字典类型的object 已经不⽀持 has_key函数,我们需要使⽤in 来进⾏遍历。
oraclesysdba初始密码解决⽅法:
定位到642⾏,if not rmap.has_key(cls): 需要换成 if not cls in rmap:
js效果怎么做问题三:'str' object has no attribute 'decode'
原因:python3 ⾥⾯对字符的操作中,decode已经拿掉了。
解决⽅法:
定位到772⾏,把 ue = e.decode('latin-1') 直接改成 ue = e 。
另外766还有类似的uo = o.decode('latin-1'),改成 uo=o ;
问题四:TypeError: can't concat bytes to str
原因:定位⼀下,报在了778⾏的内容escape(uo+ue) 。这是因为我们上⾯给uo赋值的时候,⾛的是else流程,uo被赋值的是bytes类型的值。⽽bytes类型不能直接转化为str类型。所以我们需要在前⾯给uo赋值的时候先将bytes类型转换为 str类型。
产生斜体字的html标签是什么解决⽅法:
修改768⾏的 uo = o ,直接改成 uo = o.decode('utf-8') 。
另外 774还有类似的  ue = e,改成 ue = e.decode('utf-8')。
问题五:TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and 'RPCProx网站计数器实现
y'
原因: python3  不⽀持 print >> sys.stderr 这种写法,这⾥定义输出流的话,采⽤print("This is print str",file=sys.stderr) 这种⽅式。
解决⽅法:
定位到631⾏,把print的语句修改掉,原来是print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime),可改成print('\nTime Elapsed: %s' % (self.stopTime-self.startTime),file=sys.stderr)
问题六:TypeError: 'str' does not support the buffer interface
原因:定位⼀下,问题出在118⾏,这⾥s是str类型,我们需要把传过来的s转化为bytes类型。
解决⽅法:
定位到118⾏,把 self.fp.write(s) 修改为 self.fp.write(bytes(s,'UTF-8')) 即可。
修改后对HTMLTestRunner.py 保存⼀下。
python3 ⾥⾯打开⽂件使⽤ open,不要再去⽤file了。
即 fp = file(filename,'wb')替换成 fp = open(filename,'wb');
关闭该⽂件可⽤fp.close()
备注:改动之后,中⽂也不会乱码。
1、测试报告中,msg ⾃定义异常内容有中⽂情况会出现乱码,如图所⽰:
2、到 HTMLTestRunner.py ⽂件,搜索:uo =
3、到红⾊区域设置编码的两个地⽅
免费下载ppt模板网站家长会
4、注释掉红⾊区域这两个设置,重新添加编码格式为:uo = o.decode('utf-8') ue = e.decode('utf-8'),或者在此基础上直接修给成uo = o.decode('utf-8') ue = e.decode('utf-8'),建议初学者还是⽤第⼀种⽅法。这样出错了,可以很快还原,否则
在碰到更复杂的代码直接修改就可能会遇到问题
5、修改好之后记得保存,重新运⾏,乱码问题就解决了
python基础知识测试
1、各位⼩伙伴可以按照我前边的⽅法进⾏⾃⼰修改,或者我要也是可以,注意在修改的时候空格和Tab的问题,否则运⾏会报这样的错误
1、优化是⼀些前端和CSS知识,在这⾥就不做详细介绍了,有兴趣的可以我探讨⼀下,也可以和我要⼀下那个优化后的报告⽂件,优化后报告展⽰:
1、关于⽣成报告,优化报告就是这么简单,⼩伙伴们练起来吧!
2、为了新的报告不会覆盖掉⽼的测试报告,可以按图中的红⾊部分圈起来的⽅法实现

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。