selenium之unittest的簡單用法(二)
阿新 • • 發佈:2019-01-30
一、unittest 的執行順序
很多初學者在使用 unittest 框架時候,不清楚用例的執行順序到底是怎樣的。
對測試類裡面的類和方法分不清楚,不知道什麼時候執行,什麼時候不執行。
本篇通過最簡單案例詳細講解 unittest 執行順序。
二、案例分析
1.先定義一個測試類,裡面寫幾個簡單的 case
#-*- coding:utf-8 -*-
import unittest
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
import time
class Test(unittest.TestCase):
def setUp(self):
print "開始"
def tearDown(self):
time.sleep(1)
print "結束"
def test01(self):
print "01測試"
def test02(self):
print "02測試"
def testadd(self):
print "add方法"
def test03(self):
print "03測試"
if __name__ == '__main__':
unittest.main()
2.執行結果:
C:\Python27\python.exe F:/pycharm-workspace/Django_Test/test2.py
開始
01測試
結束
開始
02測試
..結束
開始
03測試
.結束
開始
add方法
.
----------------------------------------------------------------------
Ran 4 tests in 4.001s
OK
結束
Process finished with exit code 0
3.結果分析
1).執行順序:
開始-執行測試用例 01-結束
開始-執行測試用例 02-結束
開始-執行測試用例 03-結束
開始-執行測試用例add方法-結束
2).從執行結果可以看出幾點
–先執行的前置 setUp,然後執行的用例(test*),最後執行的後置 tearDown
–測試用例(test*)的執行順序是根據 01-02-03 執行的,也就是說根據用例名稱來順序執行的
三、selenium 例項
#-*- coding:utf-8 -*-
import unittest
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
import time
class bolg(unittest.TestCase):
u'''登入部落格'''
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("https://passport.csdn.net/?service=http://write.blog.csdn.net/postedit?ref=toolbar")
self.driver.implicitly_wait(10)
def login(self,username,password):
u'''這裡寫一個登入的方法,賬號和密碼引數化'''
self.driver.find_element_by_id('username').send_keys(username)
self.driver.find_element_by_id('password').send_keys(password)
self.driver.find_element_by_class_name('logging').click()
time.sleep(2)
def is_login_sucess(self):
u'''判斷是否獲取到登入賬號'''
try:
text = self.driver.find_element_by_class_name('user_name').text
print text
return True
except:
return False
def test_01(self):
u'''登入案例參考:賬號,密碼'''
self.login('MTbaby','123456') #呼叫登入方法
#判斷結果
result = self.is_login_sucess()
self.assertTrue(result)
def test_02(self): #這裡寫兩遍的目的是為了說明裝飾器的好處,具體在後面的文字會涉及
u'''登入案例參考:賬號,密碼'''
self.login('MTbaby','123456')
result = self.is_login_sucess()
self.assertTrue(result)
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
執行結果:
C:\Python27\python.exe F:/pycharm-workspace/Django_Test/test2.py
MTbabyMTbaby的部落格
.MTbabyMTbaby的部落格
.
----------------------------------------------------------------------
Ran 2 tests in 90.184s
OK
Process finished with exit code 0