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()