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
from selenium import webdriver
import unittest
from time import sleep
class MsTest(unittest.TestCase):
# 初始化
def setUp(self): self.driver = webdriver.Firefox()
self.driver.implicitly_wait(10)
self.base_url = "http://localhost:8032/ms/admin.php/Index/index"
# 登录与退出
# 测试方法一定要以 test_开头
def test_Login(self):
driver = self.driver
driver.get(self.base_url) driver.find_element_by_xpath("//input[@id='username']").send_keys("admin") driver.find_element_by_xpath("//input[@id='password']").send_keys("admin")
driver.find_element_by_xpath("//button[@class='btn btn-default btnblock']").click()
sleep(4)
driver.find_element_by_xpath("//a[contains(.,'Hi, admin! ')]").click() driver.find_element_by_xpath("//a[@href='/ms/admin.php/Public/logout']").click()
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
runtest
import unittest
from UnittestDemo.MSDemo.ms_test import MsTest
# 构建测试套件
suite = unittest.TestSuite()
suite.addTest(MsTest("test_Login"))
# 执行测试
if __name__ == "__main__":
runner = unittest.TextTestRunner()
runner.run(suite)