一、概览下载与安装

  HTMLTestRunner是unittest的一个扩展,可以生成易于使用的HTML测试报告。HTMLTestRunner是在BSD许可证下发布的。

  下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

  因为该扩展不支持Python3,就做了一些修改 使其在Python3下运行

  GitHub地址:https://github.com/SeldomQA/HTMLTestRunner

  HTMLTestRunner.py文件既可以把它当做Python的第三方库来使用,也可以将其当做项目的一部分来使用。将其放在Python\Lib的安装目录下,在命令行检查是否安装成功

也可以将其放在项目所在的目录下,这样可以更方便的定制生成HTMLTestRunner报告。

二、测试报告的生成

 

  • stream:指定生成HTML测试报告的文件,必填。
  • verbosity:指定日志的级别,默认为1.如果想要得到更详细的日志,可以将参数改为2。
  • title:指定测试用例的标题,默认为None。
  • description:指定测试用例的描述,默认为None。
     1 import unittest
    2 from HTMLTestRunner import HTMLTestRunner
    3
    4 # 定义测试用例的目录为当前目录中的unit_test
    5 test_dir = './'
    6 suits = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')
    7 if __name__ == '__main__':
    8 # 生成HTML格式的测试报告
    9 fp = open('./result.html', 'wb')
    10 runner = HTMLTestRunner(stream=fp,
    11 title="hahahha",
    12 description="运行环境:Windows 10,Chrome浏览器")
    13 runner.run(suits)
    14 fp.close()

首先会使用open()方法打开result.html文件,用于写入测试结果。如果没有result.html文件,则会自动创建该文件,并将该文件对象传给HTMLTestRunner类的初始化参数stream.然后,调用HTMLTestRunner类中的run()方法来运行测试套件。最后,关闭result.html文件。

三、易读性强的测试报告

  为了在测试报告中更好的理解测试用例的功能,每条测试用例在编写时都应该有标题或说明,这里用到了Python的注释,Python里的注释分为两种:commentdoc string,前者为普通注释,后者用于描述函数、类和方法。在类或方法的下方,可以通过三引号添加doc string类型的注释。这类注释在平时调用时不会显示,只有通过help()方法查看时才会被显示出来。

  因为HTMLTestRunner可以读取doc string类型的注释,所以,只需要给测试类或方法添加这种类型的注释即可。

四、测试报告文件名

  测试报告的文件名为固定的,每次新的测试报告都会覆盖上一次的。若是不想被覆盖,只能每次在运行前手动修改报告的名称。这样很麻烦,最好能为测试报告自动取不同的名称,并且包含特定的含义。这里可以引用时间。

  • time.time():获取当前时间戳
  • time.ctime():当前时间的字符串形式
  • time.localtime():当前时间的struct_time形式
  • time.strftime():用来获取当前时间,可以将时间格式化为字符串

修改test_run文件如下:

 1 import time
2 import unittest
3
4 from HTMLTestRunner import HTMLTestRunner
5
6 # 定义测试用例的目录为当前目录中的unit_test
7 test_dir = './'
8 suits = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')
9 if __name__ == '__main__':
10 # 取当前日期时间
11 now_time = time.strftime("%Y-%m-%d %H_%M_%S")
12 # 生成HTML格式的测试报告
13 fp = open('./' + now_time + 'result.html', 'wb')
14 runner = HTMLTestRunner(stream=fp,
15 title="hahahha",
16 description="运行环境:Windows 10,Chrome浏览器")
17 runner.run(suits)
18 fp.close()

Selenium实战(五)——HTML测试报告的更多相关文章

  1. selenium实战脚本集——新浪微博发送QQ每日焦点(火狐)

    selenium实战脚本集(1)——新浪微博发送QQ每日焦点,乙醇用谷歌实现的,下边是用火狐实现的. 代码如下: # coding = utf-8 from selenium import webdr ...

  2. [原创].NET 分布式架构开发实战五 Framework改进篇

    原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...

  3. SpringCloud---熔断降级理解、Hystrix实战(五)

    SpringCloud---熔断降级理解.Hystrix实战(五) https://www.cnblogs.com/qdhxhz/p/9581440.html https://blog.csdn.ne ...

  4. Selenium+Java的TestNG测试报告优化

    本博主很懒,但学习很勤快,一般能从博客园直接转载的东西,本博主绝不动手写,无奈Selenium+java生成的测试报告在百度上搜索..反正我是没有看到.后来才知道TestNG它可以自动生成测试报告,但 ...

  5. selenium自动化测试之整合测试报告

    selenium自动化测试之整合测试报告 标签(空格分隔): 整合报告 如下截图我们添加一个文件叫做:latest_report.py文件, import time import os import ...

  6. Python爬虫实战五之模拟登录淘宝并获取所有订单

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了 ...

  7. Selenium实战脚本集—新浪微博发送QQ每日焦点

    Selenium实战脚本集-新浪微博发送QQ每日焦点 http://www.spasvo.com/ceshi/open/kygncsgj/Selenium/201549150822.html 背景 很 ...

  8. miniFTP项目实战五

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  9. 恶意代码分析实战五:OllyDebug动态结合

    目录 恶意代码分析实战五:OllyDebug动态结合 OllyDebug界面介绍 OllyDebug载入程序方法 OllyDebug地址跳转 OllyDebug下断点 OllyDebug单步执行 Ol ...

随机推荐

  1. 如何提取CSDN博客正文内容

    document.getElementById("article_content").outerHTML; 在任意的一片博文运行以上代码都可以获得正文内容,但是对于代码.字体都没有 ...

  2. [实用分享]Kindle电子书格式AZW3转换为MOBI

    [实用分享]Kindle电子书格式AZW3转换为MOBI 思路:先拆解成源文件再转换成 MOBI 推荐首选这种方法.此方法的思路是,首先用 KindleUnpack 把 azw3 文件拆解成源文件,然 ...

  3. 使用ClouderaManager管理的HBase的RegionServer无法启动(启动失败)的问题

    问题概述 "新冠期间"远程办公,需要重新搭建一套ClouderaManager(CM)开发环境,一位测试同事发现HBase的RegionServer无法启动,在CM界面上启动总是失 ...

  4. Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型——AttributeError: module ‘tensorboard' has no attribute 'lazy'

    转载自:CSDN Nine-days   近日,Intel 开源了一个用于神经网络压缩的开源 Python 软件包 Distiller,它可以减少深度神经网络的内存占用.加快推断速度及节省能耗.Dis ...

  5. 牛客练习赛25 A 因数个数和(数论分块)

    题意: q次询问,每次给一个x,问1到x的因数个数的和. 1<=q<=10 ,1<= x<=10^9 1s 思路: 对1~n中的每个数i,i作为i,2i,3i,...的约数,一 ...

  6. 《Python学习手册 第五版》 -第11章 赋值、表达式和打印

    上一章对Python的语句和语法已经进行了基本的说明,接下来就是每个章节的详细说明,本章的主要内容就是标题中涵盖的三点:赋值语句.表达式语句.打印语句 本章重点内容如下: 1.赋值语句 1)赋值语句的 ...

  7. Linux系统资料

    Linux的心得: 1)Linux由众多微内核组成,其源代码完全开源: 2)Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4. TCP/IPv6和链 ...

  8. Mysql:自动化备份

    简介 在这个数据为王的时代,数据的备份十分重要,这里就分享一篇mysql数据库自动备份的脚本(是从网上搜到的),其将配置文件和备份脚本分离,提高了安全性,脚本风格规范严谨,分享给大家希望对需要的小伙伴 ...

  9. [信息安全] 05 X.509 公钥证书的格式标准

    X.509是# 公钥证书的格式标准, 广泛用于TLS/SSL安全通信或者其他需要认证的环境中.X.509证书可以由# CA颁发,也可以自签名产生. 1 Overview {#1-overview} X ...

  10. asp.net EF core 系列 作者:懒懒的程序员一枚

    asp.net core 系列 19 EFCore介绍写作逻辑一 .概述1.1 比较EF Core 和EF61.2 EF Core数据库提供程序 1.3 引用程序添加数据库提供程序1.4 获取Enti ...