前言

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

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

一、下载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. iOS版微信开发小结(微信支付,APP跳转微信公众号)

    最近公司心血来潮,一心要搞微信.废话不多说,直接上干货. 开发前准备: 1.在微信开发者平台获取开发者认证:(一年300元人民币) PS:具体流程按照微信流程指示操作即可,在这就不废话了. 2.下载微 ...

  2. js获取上传文件内容

    js 获取上传文件的字节数及内容 <div> 上传文件 : <input type="file" name = "file" id = &qu ...

  3. React & styled component

    React & styled component https://www.styled-components.com/#your-first-styled-component tagged t ...

  4. 【bzoj1257】[CQOI2007]余数之和sum 数论

    题目描述 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod i表示k除以i的余数.例如j(5, 3)=3 m ...

  5. P3434 [POI2006]KRA-The Disks

    题目描述 For his birthday present little Johnny has received from his parents a new plaything which cons ...

  6. [Leetcode] Roman to integer 罗马数字转成整数

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...

  7. BZOJ5322 [Jxoi2018]排序问题 【贪心】

    题目链接 BZOJ5322 题解 意思就是使有序的排列尽量少 就是使相同的数尽量少 然后大力贪心即可 #include<algorithm> #include<iostream> ...

  8. 门户系统整合sso cookie共享及显示用户信息

    1.1 门户系统整合sso 在门户系统点击登录连接跳转到登录页面.登录成功后,跳转到门户系统的首页,在门户系统中需要从cookie中 把token取出来.所以必须在登录成功后把token写入cooki ...

  9. CentOs7 minimal安装后没有ifconfig命令解决方法

    没有ifconfig命令目前我了解两个原因: 1./sbin/ifconfig 可以执行,但是ifconfig无法执行.这个解决的时候只需要将/sbin 添加到PATH下就可以了. 2.系统未安装if ...

  10. 买卖股票的最佳时机 [ leetcode ]

    原题地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/ 给定一个数组,它的第 i 个 ...