详解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中pass语句用法实例分析
Apr 30 Python
python自定义解析简单xml格式文件的方法
May 11 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
python playwrigh框架入门安装使用
Jul 23 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
SONY SRF-M100的电路分析
2021/03/02 无线电
组合算法的PHP解答方法
2012/02/04 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
javascript 写类方式之五
2009/07/05 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
JS判断数组那点事
2017/10/10 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python操作列表之List.insert()方法的使用
2015/05/20 Python
Python实现控制台进度条功能
2016/01/04 Python
Python部署web开发程序的几种方法
2017/05/05 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
对python生成业务报表的实例详解
2019/02/03 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
红领巾心向党广播稿
2014/01/19 职场文书
火锅店营销方案
2014/02/26 职场文书
单位租车协议书
2015/01/29 职场文书
自主招生自荐信格式
2015/03/04 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL