unittest单元测试框架之unittest 框架的总结2(八)
unittest 下的属性
1.Unittest.TestCase:所有测试用例类继承的基本类
2.Unittest.main():将一个单元测试模块变为可直接运行的测试脚本
If __name__ == “__main__”: Unittest.main()
3.Unittest.TestSuite:创建测试套件
4.unittest.TextTestRunner():unittest 框架的 TextTestRunner()类,通过该类下面的 run()方 法来运行 suite 所组装的测试用例,入参为 suite 测试套件。
5.unittest.defaultTestLoader(): defaultTestLoader()类,通过该类下面的 discover()方法可 自动根据测试目录 start_dir 匹配查找测试用例文件(test*.py),并将查找到的测试用例 组装到测试套件,因此可以直接通过 run()方法执行 discover
6.unittest.skip():跳过某条测试用例
7.TestCase 类的属性:
- setUp():setUp()方法用于测试用例执行前的初始化工作。如测试用例中需要访问数据 库,可以在 setUp 中建立数据库连接并进行初始化。如测试用例需要登录 web,可 以先实例化浏览器。
- tearDown():tearDown()方法用于测试用例执行之后的善后工作。如关闭数据库连接。 关闭浏览器。
- 断言方法:assert
8.TestSuite 类:把测试用例加载到测试套件中,常用方法是 addTest()与 addTests()
9.TextTestRunner():下 run 方法,执行测试套件中的测试用例。
案例:
test
1 from selenium import webdriver 2 import unittest 3 from time import sleep 4 class MsTest(unittest.TestCase): 5 # 初始化 6 def setUp(self): 7 8 self.driver = webdriver.Firefox() 9 self.driver.implicitly_wait(10) 10 self.base_url = "http://localhost:8032/ms/admin.php/Index/index" 11 # 登录与退出 12 # 测试方法一定要以 test_开头 13 def test_Login(self): 14 driver = self.driver 15 driver.get(self.base_url) 16 17 driver.find_element_by_xpath("//input[@id='username']").send_keys("admin") 18 19 driver.find_element_by_xpath("//input[@id='password']").send_keys("admin") 20 driver.find_element_by_xpath("//button[@class='btn btn-default btnblock']").click() 21 sleep(4) 22 driver.find_element_by_xpath("//a[contains(.,'Hi, admin! ')]").click() 23 24 driver.find_element_by_xpath("//a[@href='/ms/admin.php/Public/logout']").click() 25 26 def tearDown(self): 27 self.driver.quit() 28 if __name__ == "__main__": 29 unittest.main()
runtest
1 import unittest 2 from UnittestDemo.MSDemo.ms_test import MsTest 3 # 构建测试套件 4 suite = unittest.TestSuite() 5 suite.addTest(MsTest("test_Login")) 6 # 执行测试 7 if __name__ == "__main__": 8 runner = unittest.TextTestRunner() 9 runner.run(suite)