前言 很多初學(xué)者在使用unittest框架時候,不清楚用例的執(zhí)行順序到底是怎樣的。對測試類里面的類和方法分不清楚,不知道什么時候執(zhí)行,什么時候不執(zhí)行。 本篇通過最簡單案例詳細(xì)講解unittest執(zhí)行順序。 一、案例分析 1.先定義一個測試類,里面寫幾個簡單的case # coding:utf-8 import unittest import time class Test(unittest.TestCase): def setUp(self): print "start!"
def tearDown(self): time.sleep(1) print "end!"
def test01(self): print "執(zhí)行測試用例01"
def test03(self): print "執(zhí)行測試用例03"
def test02(self): print "執(zhí)行測試用例02"
def addtest(self): print "add方法"
if __name__ == "__main__": unittest.main() 二、執(zhí)行結(jié)果 D:\test\python2\python.exe D:/test/test01.py start! 執(zhí)行測試用例01 .end! start! 執(zhí)行測試用例02 end! .start! 執(zhí)行測試用例03 end! . ---------------------------------------------------------------------- Ran 3 tests in 3.001s
OK 三、結(jié)果分析 1.執(zhí)行順序: start!-執(zhí)行測試用例01-end! start!-執(zhí)行測試用例02-end! start!-執(zhí)行測試用例03-end! 2.從執(zhí)行結(jié)果可以看出幾點 --先執(zhí)行的前置setUp,然后執(zhí)行的用例(test*),最后執(zhí)行的后置tearDown --測試用例(test*)的執(zhí)行順序是根據(jù)01-02-03執(zhí)行的,也就是說根據(jù)用例名稱來順序執(zhí)行的 --addtest(self)這個方法沒執(zhí)行,說明只執(zhí)行test開頭的用例 四、selenium實例 1.具體實例參考這篇Selenium2+python自動化48-登錄方法(參數(shù)化) # coding:utf-8 from selenium import webdriver import unittest import time class Bolg(unittest.TestCase): u'''登錄博客''' def setUp(self): self.driver = webdriver.Firefox() url = "https://passport.cnblogs.com/user/signin" self.driver.get(url) self.driver.implicitly_wait(30)
def login(self, username, psw): u'''這里寫了一個登錄的方法,賬號和密碼參數(shù)化''' self.driver.find_element_by_id("input1").send_keys(username) self.driver.find_element_by_id("input2").send_keys(psw) self.driver.find_element_by_id("signin").click() time.sleep(3)
def is_login_sucess(self): u'''判斷是否獲取到登錄賬戶名稱''' try: text = self.driver.find_element_by_id("lnk_current_user").text print text return True except: return False
def test_01(self): u'''登錄案例參考:賬號,密碼自己設(shè)置''' self.login(u"上海-悠悠", u"xxxx") # 調(diào)用登錄方法 # 判斷結(jié)果 result = self.is_login_sucess() self.assertTrue(result)
def test_02(self): u'''登錄案例參考:賬號,密碼自己設(shè)置''' self.login(u"上海-悠悠", u"xxxx") # 調(diào)用登錄方法 # 判斷結(jié)果 # 交流QQ群:232607095 result = self.is_login_sucess() self.assertTrue(result)
def tearDown(self): self.driver.quit()
if __name__ == "__main__": unittest.main()
|