天天看点

unittest之测试套件执行

unittest

  • 关于unittest的介绍,中文版官网翻译:https://docs.python.org/zh-cn/3.6/library/unittest.html
  • unittest提供了创建测试用例、测试固件、测试套件、批量执行测试用例的方案
  • 下面我们来介绍一下unittest的测试套件的4种使用方法

1. 测试套件按照顺序执行

因为有时候业务场景需要测试用例按照顺序之心,先执行A用例,再执行B用例。unittest默认是根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。

也可以使用TestSuite类的addTest方法,按照顺序添加上去

import unittest
from selenium import webdriver

url = "https://cn.bing.com/"


class UiTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome()
        cls.driver.maximize_window()
        cls.driver.get(url)

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_2Bing_images(self):
        #  再执行用例  2
        self.driver.find_element_by_partial_link_text('图片').click()
        self.driver.get(url)

    def test_1Bing_map(self):
        #  先执行用例 1
        self.driver.find_element_by_partial_link_text('地图').click()
        self.driver.get(url)


if __name__ == '__main__':
    unittest.main()
           

2. 按照测试类来执行

如果测试时,各个用例之间没有任何关系的,且有很多个类的时候,直接加载测试类执行,不用使用addTest一个一个添加,也不用去设置先后顺序的编号

import unittest
from selenium import webdriver

url = "https://cn.bing.com/"


class BingTest(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.get(url)
        print('======start=======')

    def tearDown(self):
        self.driver.quit()
        print('======END=======')

    def test_Bing_nimages(self):
        self.driver.find_element_by_partial_link_text('图片').click()

    def test_Bing_map(self):
        self.driver.find_element_by_partial_link_text('地图').click()

if __name__ == '__main__':
    # 按照测试类来执行文件
    suite = unittest.TestSuite(unittest.makeSuite(BingTest))
    unittest.TextTestRunner(verbosity=2).run(suite)
           
上一篇: A-B