详解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使用os模块和fileinput模块来操作文件目录
Jan 19 Python
Python中static相关知识小结
Jan 02 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
浅谈python新式类和旧式类区别
Apr 26 Python
python Event事件、进程池与线程池、协程解析
Oct 25 Python
Django 404、500页面全局配置知识点详解
Mar 10 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 Python
python中remove函数的踩坑记录
Jan 04 Python
python实现银行账户系统
Feb 22 Python
python数字图像处理:图像简单滤波
Jun 28 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
人大复印资料处理程序_输入篇
2006/10/09 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
使用Python对Excel进行读写操作
2017/03/30 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
Python实现的简单计算器功能详解
2018/08/25 Python
python实现贪吃蛇游戏
2020/03/21 Python
Python实现FM算法解析
2019/06/18 Python
python config文件的读写操作示例
2019/09/27 Python
python实现udp聊天窗口
2020/03/31 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
python操作toml文件的示例代码
2020/11/27 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
自我鉴定思想方面
2013/10/07 职场文书
教师节宣传方案
2014/05/23 职场文书
销售经理工作检讨书
2015/02/19 职场文书
综合办公室岗位职责
2015/04/11 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
python not运算符的实例用法
2021/06/30 Python