前言

最近小伙伴们总有一些测试报告的问题,网上的一些资料生成报告的方法,我试了都不行,完全生成不了,不知道他们是怎么生成的,同样的代码,有待研究。

今天小编写一下可以生成测试报告的方法。个人觉得也是最方便,最省事的,可批量执行测试用例,也比较容易理解的方法。另外一种用遍历的方法,小编在这边就不介绍了,有点麻烦,而且不可批量执行测试用例。

一、下载HTMLTestRunner.py

HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展。它生成易于使用的 HTML 测试报告。HTMLTestRunner 是在 BSD 许可证下发布。
      下载 地址:http://tungwaiyip.info/software/HTMLTestRunner.html(或者在我们群里下载)
      Windows :将下载的文件放入...\Python27\Lib 目录下

二、生成报告

下面还是以百度为例,baidu.py代码如下:

#coding=utf-8
      from selenium import webdriver
      from selenium.webdriver.common.by import By
      from selenium.webdriver.common.keys import Keys
      from selenium.webdriver.support.ui import Select
      from selenium.common.exceptions import NoSuchAttributeException
      import unittest,time,re
      import HTMLTestRunner
      class Baidu(unittest.TestCase):
           def setUp(self):
                 self.driver = webdriver.Firefox()
                 self.driver.implicitly_wait(30)
                 self.base_url = "http://www.baidu.com/"
                 self.verificationErrors = []
                 self.accept_next_alert = True
          def test_baidu_search(self):
                u"""百度搜索"""
                driver = self.driver
               driver.get(self.base_url + '/')
               driver.find_element_by_id("kw").send_keys("selenium webdriver")
               driver.find_element_by_id("su").click()
               time.sleep(2)
               driver.close()
         def test_baidu_set(self):
               u"""百度设置"""
               driver = self.driver
             #进入搜索设置页
               driver.get(self.base_url + '/gaoji/preferences.html')
            #设置每页搜索结果为 20 条
               m=driver.find_element_by_name("NR")
               m.find_element_by_xpath("//option[@value='20']").click()
               time.sleep(2)
          #保存设置的信息
               driver.find_element_by_xpath("/html/body/form/div/input").click()
               time.sleep(2)
               driver.switch_to_alert().accept()
        def tearDown(self):
               self.driver.quit()
               self.assertEqual([],self.verificationErrors)
    if __name__ == "__main__":
      unittest.main()

下面我们在上面baidu.py的目录下新建一个.py,用来执行测试用例集和生成测试报告。

代码如下:

#coding=utf-8
   import unittest
  #这里需要导入测试文件
   import baidu
   import HTMLTestRunner
   testunit=unittest.TestSuite()
   #将测试用例加入到测试容器(套件)中
   testunit.addTest(unittest.makeSuite(baidu.Baidu))   #baidu.Baidu中的baidu为用例所在的.py文件的名称,Baidu为测试用例集的名称
   #定义个报告存放路径,支持相对路径。
   filename= "D:\\python\\report\\"+ u"测试报告正常" +"result.html"
   fp = open(filename,"wb")
   runner =HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'测试报告',description=u'用例执行情况:')
  #执行测试用例
   runner.run(testunit)

执行完毕后,进入报告存放的路径,打开后如图:

定义报告的路径还有一种方法也可以的,生成的html文件直接在该.py文件目录下,fp = file("my_report.html", "wb"),小伙伴们可以尝试下。

Selenium2+python自动化31-生成测试报告【转载】的更多相关文章

  1. Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)【转载】

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

  2. Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)

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

  3. Selenium2+python自动化28-table定位【转载】

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

  4. Selenium2+python自动化7-xpath定位【转载】

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

  5. Selenium2+python自动化31-生成测试报告

    前言 最近小伙伴们总有一些测试报告的问题,网上的一些资料生成报告的方法,我试了都不行,完全生成不了,不知道他们是怎么生成的,同样的代码,有待研究. 今天小编写一下可以生成测试报告的方法.个人觉得也是最 ...

  6. Python自动化 unittest生成测试报告(HTMLTestRunner)03

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

  7. Selenium3+python自动化011-unittest生成测试报告(HTMLTestRunner)

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

  8. Selenium2+python自动化69-PhantomJS使用【转载】

    前言 PhantomJS是一个没有界面的浏览器,本质上是它其实也就是一个浏览器,只是不在界面上展示. PhantomJS非常适合爬虫方面,很多玩爬虫的都喜欢用这个浏览器. 一.PhantomJS环境准 ...

  9. Selenium2+python自动化74-jquery定位【转载】

    转至博客:上海-悠悠 前言 元素定位可以说是学自动化的小伙伴遇到的一道门槛,学会了定位也就打通了任督二脉,前面分享过selenium的18般武艺,再加上五种js的定位大法. 这些还不够的话,今天再分享 ...

随机推荐

  1. AtomicIntegerFieldUpdater使用

    假设现在有这样的一个场景: 一百个线程同时对一个int对象进行修改,要求只能有一个线程可以修改. 看看下面程序是否正确: private static int a = 100; private sta ...

  2. 解决ecplise安装mybatipse插件时报找不到jar包的错

    在安装mybatipse插件的时候一直报这个错,脑袋疼,在网上搜了半天也没有结果,最后摸索了半天解决了,这里先贴一张图 1.先找到eclipse的安装目录,然后把相应的jar包拷到plugins里去, ...

  3. 文件系统之 stat与access

    stat命令 stat既有命令也有同名函数,用来获取文件Inode里主要信息,所以stat命令的输出信息比ls命令的输出信息要更详细,stat 跟踪符号链接,lstat不跟踪符号链接,其中会输出对应文 ...

  4. Xampp+Openfire+Spark的简单使用

    Openfire与Spark的简单实用 1.安装Openfire 百度云 提取码:uu11 2.查找路径 /usr/local/openfire 这时候需要将openfire的文件属性都设置为 可读可 ...

  5. 201621044079《Java程序设计》第二周学习总结

    Week02-Java基本语法与类库 1.本周学习总结 记录本周学习中的重点 尝试使用 原则:少而精,自己写.即使不超过5行也可,但请一定不要简单的复制粘贴 1.学习了Java的数据类型 int ch ...

  6. Spring Data JPA 简单查询

    一.常用规则速查 1  And 并且2  Or  或3  Is,Equals 等于4  Between  两者之间5  LessThan 小于6  LessThanEqual   小于等于7  Gre ...

  7. C++ 点

    2017/12/23 scoped_ptr类型的指针,只能在一个namespace中使用 1) 怎么查看元素在set中是否存在 1) istringstream类用于执行C++风格的串流的输入操作. ...

  8. Dubbo 的 Helloworld

    前提条件 安装好了 ZooKeeper 作为注册中心 服务端 <?xml version="1.0" encoding="UTF-8"?> < ...

  9. filebeat + logstash + elasticsearch + granfa

    filebeat + logstash + elasticsearch + granfa https://www.cnblogs.com/wenchengxiaopenyou/p/9034213.ht ...

  10. 【BZOJ2134】单选错位 概率DP

    一句话:有一些看似有关系的期望在把事件全面发生之后就变得相互独立了 #include<cstdio> using namespace std; ]; double ans; int mai ...