Selenium2+python自動化52-unittest執行順序
前言
很多初學者在使用unittest框架時候,不清楚用例的執行順序到底是怎樣的。對測試類裏面的類和方法分不清楚,不知道什麽時候執行,什麽時候不執行。
本篇通過最簡單案例詳細講解unittest執行順序。
一、案例分析
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 "執行測試用例01"
def test03(self):
print "執行測試用例03"
def test02(self):
print "執行測試用例02"
def addtest(self):
print "add方法"
if __name__ == "__main__":
unittest.main()
二、執行結果
D:\test\python2\python.exe D:/test/test01.py
start!
執行測試用例01
.end!
start!
執行測試用例02
end!
.start!
執行測試用例03
end!
.
----------------------------------------------------------------------
Ran 3 tests in 3.001s
OK
三、結果分析
1.執行順序:
start!-執行測試用例01-end!
start!-執行測試用例02-end!
start!-執行測試用例03-end!
2.從執行結果可以看出幾點
--先執行的前置setUp,然後執行的用例(test*),最後執行的後置tearDown
--測試用例(test*)的執行順序是根據01-02-03執行的,也就是說根據用例名稱來順序執行的
--addtest(self)這個方法沒執行,說明只執行test開頭的用例
四、selenium實例
1.具體實例參考這篇Selenium2+python自動化48-登錄方法(參數化)
# 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‘‘‘這裏寫了一個登錄的方法,賬號和密碼參數化‘‘‘
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‘‘‘登錄案例參考:賬號,密碼自己設置‘‘‘
self.login(u"上海-悠悠", u"xxxx") # 調用登錄方法
# 判斷結果
result = self.is_login_sucess()
self.assertTrue(result)
def test_02(self):
u‘‘‘登錄案例參考:賬號,密碼自己設置‘‘‘
self.login(u"上海-悠悠", u"xxxx") # 調用登錄方法
# 判斷結果 # 交流QQ群:232607095
result = self.is_login_sucess()
self.assertTrue(result)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
Selenium2+python自動化52-unittest執行順序