详解Appium+Python之生成html测试报告


Posted in Python onJanuary 04, 2019

思考:测试用例执行后,如何生成一个直观漂亮的测试报告呢?

分析:

1.unittest单元测试框架本身带有一个textTestRunner类,可以生成txt文本格式的测试报告,但是页面不够直观

2.我们可以导入第三方库,比如常用的HTMLTestRunner类,可以生成html格式测试报告

3.首先去下载HTMLTestRunner_PY3.py脚本(我这里采用Python3.7),然后放置在Python3.7路径下的Lib目录下,使用时需要导入(即import HTMLTestRunner_PY3)

代码示例如下:

if __name__ == "__main__":
  #实例化测试套件
   suite = unittest.TestSuite()
   #加载测试用例
   suite.addTest(TestCase("test_login"))
  #生成测试报告
  # 选择指定时间格式
  timestr = time.strftime('%Y-%m-%d%H%M%S', time.localtime(time.time()))
  # 定义测试报告存放路径和报告名称
  Report = os.path.join(
    PATH('E://testing_code/code/SmartSiteTestScript/report/test_report_') +
    timestr +
    '.html')
  with open(Report, 'wb') as f:
    runner = HTMLTestRunner_PY3.HTMLTestRunner(stream=f, 
                         verbosity=2,
                         title='XXXX自动化测试报告',
                         description='执行人:丹姐') 
  runner.run(suite) 

  # 关闭测试报告 
  f.close()

解析:

1.在测试报告名中显示时间:(引入time包) timestr=time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))

time.time():获取当前时间戳

time.ctime():获取当前时间的字符串

time.localtime():当前时间的struct_time形式

time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime()):获取特定格式的时间,通常用这个

2.TestSuite是个容器,往里面用addTest()添加测试用例

3.Report定义报告保存的路径以及文件名

open() 函数用于打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写

语法:open(name[, mode[, buffering]])

  • name : 一个包含了你要访问的文件名称的字符串值
  • mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)
  • buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认

详解Appium+Python之生成html测试报告

这里常用的为 open(Report,'wb'):以二进制形式打开文件Report

4.runner定义测试报告格式,stream定义报告写入的二进制文件,title为报告的标题,description为报告的说明,runner.run()用来运行测试case,注意最后用f.close()将文件关闭!

verbosity表示测试结果的信息复杂度,有三个值

  • 0 (静默模式): 你只能获得总的测试用例数和总的结果 比如 总共100个 失败20 成功80
  • 1 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “F”
  • 2 (详细模式):测试结果会显示每个测试用例的所有相关的信息

测试报告效果图如下所示:

详解Appium+Python之生成html测试报告

Python 相关文章推荐
python getopt 参数处理小示例
Jun 09 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
Python Learning 列表的更多操作及示例代码
Aug 22 Python
python与C、C++混编的四种方式(小结)
Jul 15 Python
postman传递当前时间戳实例详解
Sep 14 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 Python
python虚拟环境迁移方法
Jan 03 #Python
对django xadmin自定义菜单的实例详解
Jan 03 #Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 #Python
Python代码打开本地.mp4格式文件的方法
Jan 03 #Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 #Python
python scp 批量同步文件的实现方法
Jan 03 #Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 #Python
You might like
PHP脚本数据库功能详解(中)
2006/10/09 PHP
PHP 如何向 MySQL 发送数据
2006/10/09 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
php取得字符串首字母的方法
2015/03/25 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP实现的策略模式示例
2019/03/20 PHP
PHP7 新增功能
2021/03/09 PHP
javascript prototype 原型链
2009/03/12 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Python 错误和异常代码详解
2018/01/29 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
python 如何调用远程接口
2020/09/11 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
自我评价200字分享
2013/12/17 职场文书
安全生产计划书
2014/05/04 职场文书
环境整治工作方案
2014/05/18 职场文书
关于颐和园的导游词
2015/01/30 职场文书
语文教师求职信范文
2015/03/20 职场文书
名人传读书笔记
2015/06/26 职场文书