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)