详解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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
Pandas中resample方法详解
Jul 02 Python
python之拟合的实现
Jul 19 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 Python
Python Json数据文件操作原理解析
May 09 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
Jun 15 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 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 array_push 数组函数
2009/12/26 PHP
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
搭建vue开发环境
2018/07/19 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
JS实现小米轮播图
2020/09/21 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
keras之权重初始化方式
2020/05/21 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
eBay荷兰购物网站:eBay.nl
2020/06/26 全球购物
如何清空Session
2015/02/23 面试题
药学专业大专生的自我评价
2013/12/12 职场文书
主管竞聘书范文
2014/03/31 职场文书
食品采购员岗位职责
2014/04/14 职场文书
学前班评语大全
2014/05/04 职场文书
晚会闭幕词
2015/01/28 职场文书