详解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基础教程之基本内置数据类型介绍
Feb 20 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
tensorflow实现softma识别MNIST
Mar 12 Python
python web基础之加载静态文件实例
Mar 20 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
简单了解python变量的作用域
Jul 30 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
python源码剖析之PyObject详解
May 18 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 zend解密软件绿色版测试可用
2008/04/14 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
JsChart组件使用详解
2018/03/04 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
js new Date()实例测试
2019/10/31 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
Linux下python3.7.0安装教程
2018/07/30 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
J2EE模式面试题
2016/10/11 面试题
班风学风建设方案
2014/05/06 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript