前言

批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。

unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner

一、导入HTMLTestRunner

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

2.Download下HTMLTestRunner.py文件就是我们需要下载的包。

3.下载后手动拖到python安装文件的Lib目录下

二、demo解析

1.下载Download下的第二个文件test_HTMLTestRunner.py,这个就是官方给的一个测试demo了,从这个文件可以找到该模块的用法。

2.找到下图这段,就是官方给的一个demo了,test_main()里上半部分就是加载测试case,我们不需要搞这么复杂。

参考前面一篇内容就行了Selenium2+python自动化53-unittest批量执行(discover)

3.最核心的代码是下面的红色区域,这个就是本篇的重点啦。

三、生成html报告

1.我们只需把上面红色区域代码copy到上一篇的基础上稍做修改就可以了,这里主要有三个参数:

--stream:测试报告写入文件的存储区域

--title:测试报告的主题

--description:测试报告的描述

2.report_path是存放测试报告的地址

 

四、测试报告详情

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

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

class Test(unittest.TestCase):
    def setUp(self):
        print "start!"

def tearDown(self):
        time.sleep(1)
        print "end!"

def test01(self):
        u'''测试登录用例,账号:xx 密码xx'''
        print "执行测试用例01"

def test03(self):
        u'''测试登搜索用例,关键词:xxx'''
        print "执行测试用例03"

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

五、参考代码:

1.我下面的代码文件路径用的相对路径,这样就避免代码换个地址找不到路径的情况了

# coding:utf-8
import unittest
import os
import HTMLTestRunner

# python2.7要是报编码问题,就加这三行,python3不用加

import sys
reload(sys)
sys.setdefaultencoding('utf8')

# 用例路径
case_path = os.path.join(os.getcwd(), "case")
# 报告存放路径
report_path = os.path.join(os.getcwd(), "report")
def all_case():
    discover = unittest.defaultTestLoader.discover(case_path,
                                                    pattern="test*.py",
                                                    top_level_dir=None)
    print(discover)
    return discover

if __name__ == "__main__":
    # runner = unittest.TextTestRunner()
    # runner.run(all_case())

# html报告文件路径
    report_abspath = os.path.join(report_path, "result.html")
    fp = open(report_abspath, "wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                           title=u'自动化测试报告,测试结果如下:',
                                           description=u'用例执行情况:')

# 调用add_case函数返回值
    runner.run(all_case())
    fp.close()

Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)相关推荐

  1. Selenium2+python自动化64-100(大结局)[已出书]

    前言 小编曾经说过要写100篇关于selenium的博客文章,前面的64篇已经免费放到博客园供小伙伴们学习,后面的内容就不放出来了,高阶内容直接更新到百度阅读了. 一.百度阅读地址: 1.本书是在线阅 ...

  2. 单元测试|unittest生成测试报告

    unittest生成测试报告 测试报告为测试结果的统计即展示,是自动化测试不可或缺的一部分,利用unittest 可以生成测试报告. 使用第三方 HTMLTestRunner 执行测试用例集,生成网页 ...

  3. Selenium2+python自动化24-js处理富文本(带iframe)

    前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...

  4. Selenium2+python自动化43-判断title(title_is)

    前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取到的结果用做断言. 本篇介绍另外一种方法去判断页面title是否与期望结果一种,用到上一篇Selenium2+p ...

  5. Selenium2+python自动化33-文件上传(send_keys)

    前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决: 另外一种 ...

  6. Selenium2+python自动化28-table定位

    前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table ...

  7. Selenium2+python自动化7-xpath定位

    前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...

  8. Selenium2+python自动化57-捕获异常(NoSuchElementException)

    Selenium2+python自动化57-捕获异常(NoSuchElementException) 参考文章: (1)Selenium2+python自动化57-捕获异常(NoSuchElement ...

  9. python单元测试教程_python单元测试unittest 输出测试报告HTMLTestRunner

    建立unittest步骤: 1.先导入模块unittest及要测试的函数 2.再创建一个继承unittest.TestCase的类,类命名要包含Test 3.在类中创建一个方法,命名为test_开头 ...

最新文章

  1. 29 基于PCL的点云平面分割拟合算法技术路线(针对有噪声的点云数据)
  2. ios开发闹钟源代码_开源源码让短视频的开发变得更加便捷
  3. 关于纠正2009年12月22日的总结的position的absolute.relative用法
  4. python中 1.34e3_Python快速编程入门——第2章 Python基础语法
  5. OJ1012: 求绝对值
  6. 都说90后不好管?聊聊跳槽这件事儿
  7. 【报告分享】2020年上半年中国直播电商行业发展分析报告.pdf(附下载链接)...
  8. 选择一款适合自己的ruby on rails IDE开发工具
  9. 推理框架runtime的动态输入、输出思路
  10. ISO50001认证辅导,这套新标准将取代主要着重实物资产管理的 PAS55系列标准
  11. windows10安装oracle10 g客户端
  12. x264-VBV(video buffering verifier)
  13. 实名寻人搜索引擎app_谷歌搜索引擎寻人
  14. autoit临时资料——学习的部分会更新
  15. 零电压开关(ZVS)电路原理与设计(整理)
  16. VS2013 OpenCV 2.4.9 “HEAP:Invalid Address specified to RtlValidateHeap( 000D0000, 019FEF18 )” 错误
  17. python使用pd.to_numeric()方法将数据转为数字类型int或float
  18. 用java在画布中绘制六个随机英文字母
  19. Hadoop HA集群配置问题记录
  20. java毕业设计个人博客系统mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. 4月连锁药店行业O2O外卖单平台品牌及药品销量排行榜
  2. Python爬虫学习第1天丨从零开始初识爬虫
  3. 一张A4纸如何打印多个准考证
  4. 深入浅出 Cocoa 多线程编程之 block 与 dispatch quene
  5. RK3566恢复显示屏异常显示的方法
  6. ESXi虚拟机定时关机
  7. java幻灯片效果_Java实现多种幻灯片切换特效(附源码)
  8. Maya渲染图像保存变暗的问题
  9. 来了,不限速的阿里云盘分享功能,附百度网盘迁移工具!
  10. 单色液晶屏的工作原理是什么? 单色液晶屏该如何分类