简介
  五一小长假已经结束了,想必大家都吃饱喝足玩好了,那就继续学习吧。一天不学习,自己知道;两天不学习,对手知道;三天不学习,大家知道;一周不学习,智商输给猪。好了开个玩笑都逗大家一乐,但是想想还是有道理的。那就进

入正题:上一篇我们批量执行完用例后,已经生成的测试报告是生成 HTML 格式的。但是我们可以看出那个官方的测试报告既不美观也不大方,我们这里需要优化一下,优化的让人赏心悦目,就和看到一个美女一样看了一眼,忍不住回头再多

看一眼 - _ - 并且把上一篇遇到的问题列举解决一下。

python3如何改动下载的HTMLTestRunner
HTMLTestRunner.py 的python3 版本
由于 HTMLTestRunner.py 原本就是python2版本,目前还没找到python3版本,所以需要我们自己修改 HTMLTestRunner.py 文件。

  1. 修改的地方
    问题一: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 来进行遍历。

解决方法:

定位到642行,if not rmap.has_key(cls): 需要换成 if not cls in rmap:

问题三:‘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类型。

解决方法:

修改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 ‘RPCProxy’

原因: 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’)) 即可。

  1. 保存
    修改后对HTMLTestRunner.py 保存一下。

  2. 调用语句更改
    python3 里面打开文件使用 open,不要再去用file了。

即 fp = file(filename,‘wb’)替换成 fp = open(filename,‘wb’);

关闭该文件可用fp.close()

备注: 改动之后,中文也不会乱码。

中文乱码
1、测试报告中,msg 自定义异常内容有中文情况会出现乱码,如图所示:


2、找到 HTMLTestRunner.py 文件,搜索:uo =

3、找到红色区域设置编码的两个地方

4、注释掉红色区域这两个设置,重新添加编码格式为:uo = o.decode(‘utf-8’) ue = e.decode(‘utf-8’),或者在此基础上直接修给成uo = o.decode(‘utf-8’) ue = e.decode(‘utf-8’),建议初学者还是用第一种方法。这样出错了,可以很快还原,否则

在碰到更复杂的代码直接修改就可能会遇到问题

5、修改好之后记得保存,重新运行,乱码问题就解决了

python3 报告问题
1、各位小伙伴可以按照我前边的方法进行自己修改,或者找我要也是可以,注意在修改的时候空格和Tab的问题,否则运行会报这样的错误

报告问题样式优化
1、优化是一些前端和CSS知识,在这里就不做详细介绍了,有兴趣的可以找我探讨一下,也可以和我要一下那个优化后的报告文件,优化后报告展示:

小结
1、关于生成报告,优化报告就是这么简单,小伙伴们练起来吧!

2、为了新的报告不会覆盖掉老的测试报告,可以按图中的红色部分圈起来的方法实现

3、参考代码(增加一行代码,测试报告的路径修改一下)

1 # 获取当前时间,这样便于下面的使用。
2 now = time.strftime("%Y-%m-%M-%H_%M_%S", time.localtime(time.time()))
3 #保存生成报告的路径
4 report_path = “C:\Users\DELL\PycharmProjects\honggetest\report\result”+now+".html"

python接口自动化(二十八)--html测试 报告——下(详解)相关推荐

  1. 深度学习之图像分类(二十八)-- Sparse-MLP(MoE)网络详解

    深度学习之图像分类(二十八)Sparse-MLP(MoE)网络详解 目录 深度学习之图像分类(二十八)Sparse-MLP(MoE)网络详解 1. 前言 2. Mixture of Experts 2 ...

  2. python接口自动化(四)--接口测试工具介绍(详解)

    简介 "工欲善其事必先利其器",通过前边几篇文章的介绍,大家大致对接口有了进一步的认识.那么接下来让我们看看接口测试的工具有哪些. 目前,市场上有很多支持接口测试的工具.利用工具进 ...

  3. python接口自动化(十八)--重定向(Location)(详解)

    简介 在实际工作中,有些接口请求完以后会重定向到别的url,而你却需要重定向前的url.URL主要是针对虚拟空间而言,因为不是自己独立管理的服务器,所以无法正常进行常规的操作.但是自己又不希望通过主域 ...

  4. python接口自动化测试二十四:上传多个附件,参数化

    python接口自动化测试二十四:上传多个附件,参数化 # 添加多个附件参数化files = [("1.png", "1.png") ("2.png& ...

  5. (十八)享元模式详解(都市异能版) - 转

    作者:zuoxiaolong8810(左潇龙),转载请注明出处. 魔都. 自从越狱风波过去以后,小左的生活便又回到了之前的节奏,依旧是每日徘徊在魔都某天桥,继续着自己的算命之旅. 说起这次越狱风波,着 ...

  6. Android绘图Canvas十八般武器之Shader详解及实战篇(上)

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 前言 Android中绘图离不开的就是Canvas了,Canvas是一个庞大的知识体系,有java层的,也有jni层深入到Frame ...

  7. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)–发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先了 ...

  8. Python入门(二十六)测试(一)

    测试(一) 1.概述 2.测试函数 2.1 单元测试和测试用例 2.2 可通过的测试 2.3 未通过的测试 2.4 测试未通过怎办 2.5 添加新测试 1.概述 编写函数或类时,还可为其编写测试.通过 ...

  9. soapui工具_python接口自动化(四)--接口测试工具介绍(详解)

    简介 "工欲善其事必先利其器",通过前边几篇文章的介绍,大家大致对接口有了进一步的认识.那么接下来让我们看看接口测试的工具有哪些. 目前,市场上有很多支持接口测试的工具.利用工具进 ...

  10. SLAM学习笔记(二十)LIO-SAM流程及代码详解(最全)

    写在前面 关于安装配置,博客LIO_SAM实测运行,论文学习及代码注释[附对应google driver数据] 我觉得已经写的比较完善了.但是我觉得在注释方面,这位博主写的还不够完善,因此在学习以后, ...

最新文章

  1. 爬虫基础-登陆github获取个人信息
  2. java的collections_Java中Collection和Collections的区别
  3. java基准测试_微基准测试进入Java 9
  4. 碎阅:一款基于douban及ONE API开发的资讯类App
  5. WPF 创建右键菜单
  6. triz矛盾矩阵_怎样利用项目TRIZ矛盾定义法,突破产品“创
  7. linux高性能服务器编程PDF源代码下载
  8. 微型计算机电路试卷,微机原理试卷及答案2
  9. Android 多种限定符
  10. spring boot 实现 Kurento 一对一浏览器视频聊天
  11. weblogic-cve_2020_2883漏洞复现
  12. pinyin4j使用示例(支持多音字)
  13. 创新之力迸发无限想象,联想创新开放日触见未来科技
  14. win7 计算机不显示收藏夹,win7系统下收藏夹无法使用的原因及解决方法
  15. python关掉警告信息(warning)
  16. C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
  17. springboot2.3手册:5分钟用Netty搭建高性能异步WebSocket服务
  18. 智能化网络管理系统 为网络安全把脉
  19. AD19原理图页面大小等参数修改
  20. 小石桥的祭祀活动与电影《寻梦环游记》

热门文章

  1. Java高级架构师(一)第05节:TortoiseGit的本地使用
  2. mysql在window的使用记录
  3. 以鶸ice为例,手撸一个解释器(一)明确目标
  4. angular2 图表指令ng2-echarts
  5. mysql之select+五种子句的理解
  6. 关于SQL Server 2005 的自动远程数据库备份
  7. spring+struts2+mybatis
  8. 【ASP.NET Web API教程】3.4 HttpClient消息处理器
  9. 【报告分享】2020年金融科技十大关键词.pdf(附下载链接)
  10. 【报告分享】中国“新基建”发展研究报告.pdf(附下载链接)