详解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 23 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
Python while 循环使用的简单实例
Jun 08 Python
python算法表示概念扫盲教程
Apr 13 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
Python的Lambda函数用法详解
Sep 03 Python
python飞机大战pygame游戏背景设计详解
Dec 17 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
python json.dumps中文乱码问题解决
Apr 01 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
python中 Flask Web 表单的使用方法
May 20 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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python实现的各种排序算法代码
2013/03/04 Python
Python输出带颜色的字符串实例
2017/10/10 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
使用Python构造hive insert语句说明
2020/06/06 Python
美国内衣品牌:Leonisa
2016/08/14 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
Overload和Override的区别
2012/09/02 面试题
高校十八大报告感想
2014/01/27 职场文书
违纪检讨书2000字
2014/02/08 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
行政助理工作职责范本
2014/03/04 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
导游词之任弼时故居
2020/01/07 职场文书
springboot读取nacos配置文件
2022/05/20 Java/Android