如何建立网站域名网站产品怎么优化
写测试案例的过程中,我们可以需要写多个py文件,一个一个的去执行再生成报告,不仅麻烦而且多份报告还要重新去整合,浪费时间,有没有一种方法可以把我们写的所有py文件同时执行呢?其实这种方法类似之前的测试多个类的方法。
编写多个测试案例文件
我们之前写了一个针对百度搜索的测试案例baidu.py,在这个文件的目录下,我们再写一个搜狗搜索的测试案例sougou.py。和百度搜索的代码类似,代码如下:
# -*- coding: utf-8 -*-
from selenium import webdriver
import HTMLTestRunner,time,unittestclass Sougou(unittest.TestCase):def setUp(self):self.driver = webdriver.Chrome()self.driver.implicitly_wait(30)self.base_url = "https://www.sogou.com"self.verificationErrors = []self.accept_next_alert = Truedef tearDown(self):self.driver.quit()self.assertEqual([],self.verificationErrors)def test_sougou_search(self):driver = self.driverdriver.get(self.base_url)driver.find_element_by_xpath('//*[@id="query"]').send_keys('selenium')driver.find_element_by_xpath('//*[@id="stb"]').click()time.sleep(2)driver.close()if __name__ == '__main__':testunit = unittest.TestSuite()testunit.addTest(Sougou('test_sougou_search'))filename = '/Users/svenweng/Desktop/result-sougou.html'fp = file(filename,'wb')runner = HTMLTestRunner.HTMLTestRunner(stream = fp,title = 'Sougou Test Report',description = 'Sougou testcase')runner.run(testunit)
执行上面的代码显示的结果就是在谷歌浏览器中搜索selenium,然后关闭浏览器,生成测试报告。
同时执行多个测试案例
这里就是本次要介绍的功能,没有新的知识点,只是把原来写过的文件导入同时执行测试。
新建一个all_tests.py文件,然后把我们需要测试的文件导入。
# -*- coding: utf-8 -*-
import unittest,HTMLTestRunner
import baidu,sougou
导入我们的测试文件后,使用下面的方法吧测试案例添加到执行集中。
testunit = unittest.TestSuite()
testunit.addTest(unittest.makeSuite(baidu.Baidu))
testunit.addTest(unittest.makeSuite(sougou.Sougou))
x = testunit.countTestCases()
testunit.countTestCases()这个功能表示在TestSuite一共放了几条测试案例。
然后我们再引入测试报告的内容,代码如下:
filename = '/Users/svenweng/Desktop/result.html'
fp = file(filename,'wb')runner = HTMLTestRunner.HTMLTestRunner(stream = fp,title = 'Search Test Report',description = u'本次测试的案例数为:' + str(x) + u'条')
runner.run(testunit)
这样我们就可以一次性跑多个测试案例,同时也只会生成一份测试报告。三个文件必须要放在同一个文件夹下,如果不是在同一个文件夹,import的时候需要注意导入的路径,源码如下:
# -*- coding: utf-8 -*-
import unittest,HTMLTestRunner
import baidu,sougoutestunit = unittest.TestSuite()
testunit.addTest(unittest.makeSuite(baidu.Baidu))
testunit.addTest(unittest.makeSuite(sougou.Sougou))
x = testunit.countTestCases()filename = '/Users/svenweng/Desktop/result.html'
fp = file(filename,'wb')runner = HTMLTestRunner.HTMLTestRunner(stream = fp,title = 'Search Test Report',description = u'本次测试的案例数为:' + str(x) + u'条')
runner.run(testunit)