在脚本运行完成之后,除了在log.txt文件看到运行日志外,我们更希望能生成一张漂亮的测试报告来展示用例执行的结果。
HTMLTestRunner是python标准库的unittest模块的扩展
首先要下载HTMLTestRunner.py文件
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
Windows:下载文件直接放在python\lib目录下
liunx(ubuntu):打开终端,输入python命令进入python交互模式,通过sys.path查看python文件目录,以管理员的身份将HTMLTestRunner.py文件拷贝到/usr/lib/python2.7/dist-packages/
start_baidu.py
from selenium import webdriver
import time,unittest
from myTestCase.login import login
class BaiDu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.path='http://www.baidu.com'
self.driver.get(self.path)
self.driver.implicitly_wait(30)
self.verificationErrors = []
self.accept_next_alert = True
def test_b(self):
login(self)
print('登陆成功')
text = self.driver.find_element_by_xpath('//*[@id="s_username_top"]/span').text
self.assertEqual('魅影24K纯帅', text, '登录失败')
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
# if __name__=='__main__':
# unittest.main()
start_youdao.py
from selenium import webdriver
import time,unittest
class YouDao(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.path='http://fanyi.youdao.com/'
self.driver.get(self.path)
self.driver.implicitly_wait(30)
self.verificationErrors = []
self.accept_next_alert = True
def test_y(self):
self.driver.find_element_by_xpath('/html/body/div[1]/div/ul/li[2]/a').click()
time.sleep(2)
title=self.driver.title
self.assertEqual('在线翻译_有道',title,'跳转失败')
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
# if __name__=='__main__':
# unittest.main()
alltest.py
import time,unittest,HTMLTestRunner
#用例目录
listdir = 'C:\\Users\\apple\\PycharmProjects\\pycase\\myTestCase\\'
def mysuite():
suite=unittest.TestSuite()#初始化套件测试对象
#获取py文件
#top_level_dir=None:测试模块的顶层目录。如果没顶层目录(也就是说测试用例不是放在多级目录
# 中),默认为 None。
discover = unittest.defaultTestLoader.discover(
listdir,pattern='start*.py',top_level_dir=None
)
for test_suite in discover:#循环获取start开头的py文件
for test_case in test_suite:#获取每个文件中的测试用例
suite.addTest(test_case)
return suite
s = mysuite()
now = time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime())
# print(now)
filename = 'C:\\Users\\apple\\PycharmProjects\\pycase\\myTestCase\\'+now+'target.html'
fp = open(filename, 'wb')
#定义测试报告
runner = HTMLTestRunner.HTMLTestRunner(
stream=fp,
title=u'百度搜索测试报告',
description=u'用例执行情况:')
#运行测试用例
runner.run(s)
生成的HTML测试报告如下图所示: