测试多个文件

写测试案例的过程中,我们可以需要写多个py文件,一个一个的去执行再生成报告,不仅麻烦而且多份报告还要重新去整合,浪费时间,有没有一种方法可以把我们写的所有py文件同时执行呢?其实这种方法类似之前的测试多个类的方法。

编写多个测试案例文件

我们之前写了一个针对百度搜索的测试案例baidu.py,在这个文件的目录下,我们再写一个搜狗搜索的测试案例sougou.py。和百度搜索的代码类似,代码如下:

# -*- coding: utf-8 -*-
from selenium import webdriver
import HTMLTestRunner,time,unittest

class 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 = True

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([],self.verificationErrors)

    def test_sougou_search(self):
        driver = self.driver
        driver.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,sougou

testunit = 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)
测试多个文件_第1张图片
测试报告效果图

你可能感兴趣的:(测试多个文件)