在脚本运行完成之后,除了在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测试报告如下图所示: