详解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抓取网页中图片并保存到本地
Dec 01 Python
Python中list初始化方法示例
Sep 18 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
Python实现FM算法解析
Jun 18 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
学习python需要有编程基础吗
Jun 02 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
基于Python爬取素材网站音频文件
Oct 21 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 Python
Python软件包安装的三种常见方法
Jul 07 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 socke 向指定页面提交数据
2008/07/23 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python本地与全局命名空间用法实例
2015/06/16 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
SQL中where和having的区别
2012/06/17 面试题
旅游管理专业学生求职信
2013/09/28 职场文书
毕业生就业推荐信范文
2013/12/01 职场文书
应聘英语教师求职信
2014/04/24 职场文书
学雷锋倡议书
2015/01/19 职场文书
行政经理岗位职责
2015/04/15 职场文书
兴趣班停课通知
2015/04/24 职场文书
新学期感想
2015/08/10 职场文书
pytorch 实现在测试的时候启用dropout
2021/05/27 Python