zoukankan      html  css  js  c++  java
  • Selenium2+python自动化31-生成测试报告【转载】

    前言

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

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

    一、下载HTMLTestRunner.py

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

    二、生成报告

         下面还是以百度为例,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"),小伙伴们可以尝试下。

  • 相关阅读:
    JAVA自学之-----FileInputStream类
    RandomAccessFile类的使用(随机读取java中的文件)
    JAVA File常用的API介绍
    Java中的编码
    java的装箱与拆箱
    java基础知识整理:
    java程序编写需注意的问题
    iPhone开机键坏了如何开机
    WKInterfaceTable实例化出现的一系列
    Office for Mac
  • 原文地址:https://www.cnblogs.com/caoj/p/7805445.html
Copyright © 2011-2022 走看看