使用HTMLTestRunner.py生成selenium+python自动化测试报告

1.下载HTMLTestRunner.py文件

http://tungwaiyip.info/software/HTMLTestRunner.html。。

Python2和python3有所改变。。。

对应修改HTMLTestRunner.py内容就好了。。

2.然后如果是Windows:

        直接将HTMLTestRunner.py放到python安装目录下的Lib中即可

3. 以下是运用HTMLTestRunner.html的实例。。这时看虫师的python+selenuim文章的实例。。

    我开始试了几次。。结果并没有打印出来报告。。。原因是Pycharm执行的是单元测试部分,并不能打印出报告。。IDE的原 因啦~~~

 然后尝试用python的IDLE执行py文件。。可以出报告了。。。

但是报告内容是空的。。。

结果发现,在运行完成之后,没有关闭流文件。。。。

fp.close()
这是导致报告为空的原因。。。
# author:Shirley
import time
import unittest
import HTMLTestRunner
from selenium import webdriver


class Baidu(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.baidu.com/"
        self.verificationErrors = []
        self.accept_next_alert = True

    # 百度搜索用例
    def test_baidu_search(self):
        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):
        driver = self.driver
        # 进入搜索设置页
        driver.get(self.base_url + "/gaoji/preferences.html")
        # 设置每页搜索结果为 50 条
        m = driver.find_element_by_name("NR")
        m.find_element_by_xpath("//option[@value='50']").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__":
    # 定义一个单元测试容器
    testunit = unittest.TestSuite()
    # 将测试用例加入到测试容器中
    testunit.addTest(Baidu("test_baidu_search"))
    testunit.addTest(Baidu("test_baidu_set"))

    # 定义个报告存放路径,支持相对路径
    filename = 'E:\\Users\\xuxueli\\PycharmProjects\\python1\\report\\result.html'
    fp = open(filename, 'wb')
    # 定义测试报告
    runner = HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title=u'百度搜索测试报告',
        description=u'用例执行情况:'
    )
    # 运行测试用例
    runner.run(testunit)
    # 写完之后必须将fp关闭,否则报告是空的
    fp.close()

你可能感兴趣的:(python,Python+Selenium)