HTML测试报告

显然,一份漂亮的测试报告展示自动化测试成果只有一个简单的log文件是不够的。
HTMLTestRunner是python标准库unittest单元测试框架的一个扩展,它生成易于使用的HTML测试报告。
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载HTMLTestRunner.py文件,选中后右键另存为,保存到本地,然后将其放在python安装目录下的Lib目录下。即:Windows保存到…\pytohn27\Lib目录下。

在python交互模式下引入HTMLTestRunner模块,如果系统没有报错,则说明添加成功,如下图所示

2.修改HTMLTestRunner
因为HTMLTestRunner.py是基于python2开发的,为了使其支持python3的环境,需要对其中的部分内容进行修改,如下图所示。
#第94行

#第540行

#第633行

#第646行

#第771行

#第778行

3.生成HTML测试报告
下面继续以test_baidu.py文件为例生成HTMLTestRunner测试报告。(注意:由于当前本人使用的是python2.7,所以不能修改HTMLTestRunner.py文件)

#test_baidu.py

#coding:utf-8
from selenium import webdriver
from HTMLTestRunner import HTMLTestRunner
import unittest
import time class MyTest(unittest.TestCase): def setUp(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
self.base_url="http://www.baidu.com" def test_baidu(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("unittest")
driver.find_element_by_id("su").click()
time.sleep(2)
title=driver.title
self.assertEqual(title,u"unittest_百度搜索") def tearDown(self):
self.driver.quit() if __name__=="__main__":
testunit=unittest.TestSuite()
testunit.addTest(MyTest("test_baidu")) #定义报告存放路径
fp=open('./result.html','wb') #定义测试报告
runner=HTMLTestRunner(stream=fp,title=u'百度搜索测试报告',description=u'用例执行情况:') runner.run(testunit)#运行测试用例
fp.close()#关闭报告文件

  

代码分析:
1.首先,将HTMLTestRunner模块用import导入进来。
2.通过open()方法一二进制写模式打开当前目录下的result.html,如果没有,则自动创建该文件。
3.调用HTMLTestRunner模块下的HTMLTestRunner类,stream指定测试报告文件,title用于定义测试报告的标题,description用于定义测试报告的副标题。
4.最后,通过HTMLTestRunner的run()方法来运行测试套件中的测试用例,最后,通过close()关闭测试报告文件。
5.用例执行完成后,打开“result.html”文件查看生成的测试报告,如下图所示:

Selenium 2自动化测试实战35(HTML测试报告)的更多相关文章

  1. 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法

    虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...

  2. Selenium 2自动化测试实战

    Selenium 2自动化测试实战 百度网盘 链接:https://pan.baidu.com/s/1aiP3d8Y1QlcHD3fAlEj4sg 提取码:jp8e 复制这段内容后打开百度网盘手机Ap ...

  3. Selenium 2自动化测试实战3(函数、类和方法)

    一.函数.类和方法1.函数在python中通过def关键字来定义函数 创建一个add()函数,此函数接收两个参数a,b,通过print()打印a+b的结果.调用add()函数,并且上传两个参数3,5给 ...

  4. web自动化测试实战之生成测试报告

    同志们,老铁们,继上篇文章 web自动化测试实战之批量执行测试用例 之后我们接着继续往下走,有人说我们运行了所有测试用例,控制台输入的结果,如果很多测试用例那也不能够清晰快速的知道多少用例通过率以及错 ...

  5. Selenium 2自动化测试实战36(更易读的测试报告)

    一.更易读的测试报告 1.知识点:python的注释. 1.一种叫comment,为普通的注释2.另一种叫doc string,用于函数,类和方法的描述.在类或方法的下方,通过三引号("&q ...

  6. Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记

    背景 最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习.所以本文几乎没有实践内容,大多都是概念和工 ...

  7. Selenium 2自动化测试实战39(Page Object设计模式)

    Page Object设计模式 Page object是selenium自动化测试项目开发时间的最佳设计模式之一,主要体现在对界面交互细节的封装. 1.认识page object优点如下:1.减少代码 ...

  8. Selenium+Python自动化测试实战(2)元素定位

    1.Selenium2 的原理 第一篇分享简单介绍了基于Python开发的Selenium2的环境配置,这篇主要讲一下基本用法.首先讲一下Selenium2的基本原理.基本上知道了这个东西是怎么回事, ...

  9. Selenium 2自动化测试实战38(整合自动发邮件功能)

    整合自动发邮件功能 解决了前面的问题后,现在就可以将自动发邮件功能集成到自动化测试项目中了.下面重新编辑runtest.py文件 #runtest.py #coding:utf-8 from HTML ...

随机推荐

  1. Go测试开发就用这三板斧

    一个古老的面试问题:“给你个XX,你怎么测试?” 时间穿越到9102,Go语言成为了新生代的代名词.老问题变成了“给你Golang程序,你怎么测试?”     看完本文后,读者可以拍着胸脯回答,“一共 ...

  2. Is there a difference between `==` and `is` in Python?

    is will return True if two variables point to the same object, == if the objects referred to by the ...

  3. mybatis的配置文件详解(二)

    一.properties 这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递.例如 1) <?xml versio ...

  4. 利用Struts上传文件

    在利用struts2完成上传文件到服务器时,遇到获取不到文件名 原因是在Action中的属性名没有和jsp中的属性名匹配 <%@ page language="java" i ...

  5. keeping

     很多时候我们总是低估了自己,对自己不够狠,从而错过了遇到一个更加优秀的自己.逼自己一把,很多事并不需要多高的智商,仅仅需要你的一份坚持,一个认真的态度,一颗迎难而上的决心 

  6. python内置函数(二)之filter,map,sorted

    filter filter()函数接收一个函数 f 和一个iterable的对象,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条 ...

  7. CSS实现按钮YES-NO按钮+Jquery获取按钮状态。

    前几天我经理突然跟我说,能不能做一个开关按钮,需要过滤的一个标识.说实话,一个做后端我是懵逼状态的. 不过网上资料很多,查了一遭,发现一个不错的哥们给出的案例,模仿一下成功实现,下面就自己总结一下: ...

  8. vs调试代码 提示 未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。

    未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序. 1.调试-选项-项目和解决方案-web项目-勾选对网站和项目使用iis express 64 ...

  9. keras计算指定层的输出

    import keras model = keras.models.Sequential([ keras.layers.Dense(4, activation='relu', input_dim=1, ...

  10. has(expr|ele)保留包含特定后代的元素,去掉那些不含有指定后代的元素。

    has(expr|ele) 概述 保留包含特定后代的元素,去掉那些不含有指定后代的元素.大理石平台等级 .has()方法将会从给定的jQuery对象中重新创建一组匹配的对象.提供的选择器会一一测试原先 ...