批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成 HTML 格式的。unittest 里面是不能生成 html 格式报告的,需要导入一个第三方的模块:HTMLTestRunner

1、导入 HTMLTestRunner

1).这个模块下载不能通过 pip 安装了,只能下载后手动导入,下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

2).Download 下 HTMLTestRunner.py 文件就是我们需要下载的包。
3).下载后手动拖到 python 安装文件的 Lib 目录下

2 demo 解析

1).下载 Download 下的第二个文件 test_HTMLTestRunner.py,这个就是官方给的一个测试 demo 了,从这个文件可以找到该模块的用法。
2).找到下图这段,就是官方给的一个 demo 了,test_main()里上半部分就是加载测试 case,我们不需要搞这么复杂。
3).最核心的代码是下面的红色区域,这个就是本篇的重点啦。

3、生成 html 报告

1).我们只需把上面红色区域代码 copy 到上一篇的基础上稍做修改就可以了,这里主要有三个参数:
--stream:测试报告写入文件的存储区域
--title:测试报告的主题
--description:测试报告的描述
2).filename 是存放测试报告的地址

3、测试报告详情

1).找到测试报告文件,用浏览器打开,点开 View 里的 Detail 可以查看详情描述。

2).为了生成带中文描述的测试用例,可以在 case 中添加注释,如在 test_baidu的脚本添加如下注释:

3).重新运行后查看测试报告

参考代码:

# coding=utf-8
import unittest, doctest
import HTMLTestRunner
import time
# 相对路径
test_dir ='./test_case'
test_dir1 ='./report'
# 绝对路径
# test_dir='C:\\Users\\Anne\\Desktop\\SeleniumPython_Test\\Web_case\\test_case'
# test_dir1='C:\\Users\\Anne\\Desktop\\SeleniumPython_Test\\Web_case\\report'
discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')
# 定义带有当前测试时间的报告,防止前一次报告被覆盖
now = time.strftime("%Y-%m-%d %H_%M_%S")
filename = test_dir1 + '/' + now + 'result.html'
# 定义测试报告存放路径
# filename = 'C:\\Users\\Anne\\Desktop\\SeleniumPython_Test\\Web_case\\report\\result.html'
# 二进制打开,准备写入文件
fp = file(filename, 'wb')
# 定义测试报告
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行情况')
runner.run(discover)

  

最新文章

  1. 那些让IE6-8羞愧的替补型js
  2. PHP写在线视频直播技术详解
  3. Asp.net MVC 视图(三)
  4. NXP开源自动驾驶计算平台Bluebox 打造现实无人汽车
  5. 256 terabytes random-access memory
  6. 我的Github注册使用之旅
  7. Android 动态Tab分页效果
  8. (转载)PHP 提示和技巧
  9. mysql 关键字bug
  10. 如何不屏蔽Android系统的返回按键
  11. WCF学习心得----(三)服务承载
  12. IntentService和Service的区别
  13. AOP中使用Aspectj对接口访问权限进行访问控制
  14. kebu之rook-ceph
  15. PHP文件缓存包含三种格式
  16. Trident中的解析包含的函数操作与投影操作
  17. linux 编译链接问题
  18. iis重新注册.netframework4.0
  19. python模块——re模块(简单的计算器功能实现_eval版)
  20. ACCESS修改密码,更新显示

热门文章

  1. ARM启动代码中_main 与用户主程序main()的区别
  2. Hadoop各个启动流
  3. 修改阿里云ECS服务器的系统时区
  4. Python下载网页图片
  5. JAVA IO总结及socket简单实现
  6. RobotFramework中查询数据库相关
  7. python版本selenium定位方式(不止八种哦)
  8. Android应用开发以及设计思想深度剖析
  9. CF|codeforces 280C Game on Tree
  10. Java 之封装