unittest 介紹了4 個重要的概念: test case, test suite, test runner,test fixture。
1、testcase: 乙個testcase 的例項就是乙個測試用例, 就是乙個完整的測試流程,包括測試前準備環境的搭建(setup),實現測試過程的**(run),以及測試後環境的還原(teardown)。元測試(unittest)的本質也就在這裡,乙個測試用例是乙個完整的測試單元,通過執行這個測試單元,可以對某乙個功能進行驗證。
setup用於設定初始化工作,在每乙個測試用例前先被執行,它與teardown方法相呼應,後者在每乙個測試用例執行後被執行。這裡的初始化工作定義了瀏覽器啟動和基礎url 位址。
defsetup(self):
self.driver =webdriver.chrome()
self.driver.implicitly_wait(30)
self.base_url = "
"self.verificationerrors =
self.accept_next_alert = true
teardown方法在每個測試方法執行後呼叫,這個方法用於完成測試用例執行後的清理工作,如退出瀏覽器、關閉驅動,恢復用例執行狀態等。在setup()方法中定義了verificationerrors 為空陣列,這裡通過assertequal()比較其是否為空,如果為空說明用例執行的過程過程中沒有出現異常,否則將丟擲assertionerror 異常:
defteardown(self):
self.driver.quit()
self.assertequal(, self.verificationerrors)
2、testsuite:對乙個功能的驗證往往是需要多測試用例的,可以把多的測試用例集合在一起執行,這就產生了測試套件testsuite 的概念,它用來組裝單個測試用例,而且testsuite 也可以巢狀testsuite。
testsuite()可以被看作乙個容器(測試套件),通過addtest 方法我們可羅列具體所要執行的測試用例。如果使用unittest.main()的話缺省會執行所有以test 開頭的測試用例。
3、testrunner:texttestrunner 是來執行測試用例的,其中的run(test)用來執行testsuite/testcase。測試的結果會儲存到texttestresult 例項中,包括執行了多少測試用例,成功了多少,失敗了多少等資訊。
4、testfixture:對乙個測試用例環境的搭建和銷毀,是乙個fixture,通過覆蓋testcase 的setup()和teardown()方法來實現.
了解unittest框架之後,練習乙個登入的例子,**如下:
#coding=utf-8
from selenium import
webdriver
import
unittest
class
task_a(unittest.testcase):
def setup(self): #
每個測試用例之前執行
self.driver=webdriver.chrome()
self.url="
"self.verificationerrors=
self.accept_next_alter=true
def teardown(self): #
每個測試用例之後執行
self.driver.quit()
self.assertequal(,self.verificationerrors)
deftest_1(self):
u"測試用例1
"driver=self.driver
driver.get(self.url)
driver.maximize_window()
username='
user1
'driver.find_element_by_css_selector(
"input.login-form
").send_keys(username) #
定位到使用者名稱輸入框
driver.find_element_by_css_selector("
input.passwd
").send_keys('
123456
') #
定位到密碼輸入框
driver.find_element_by_css_selector("
input.btn.btn-default
").click() #
點選登入按鈕
info = driver.find_element_by_css_selector("
#usermenu > div.user-id
").text
self.assertequal(username, info)
print("
login用例執行完成")
if__name__=='
__main__':
unittest.main()
多測師之unittest詳解
一 unittst框架的作用 當我們寫的用例越來越多時,我們就需要考慮用例編寫的規範與組織,以便於後期的維護,而unittest正是這樣一款工具 二 unittest是python自帶的標準庫中的模組,其中包括 1 testcase類 2 testsuite類 3 testloader類 4 tex...
unittest詳解(七) 自動生成測試報告
用例執行完成後,執行結果預設是輸出在螢幕上,其實我們可以把結果輸出到乙個檔案中,形成測試報告。unittest自帶的測試報告是文字形式的,如下 import unittest if name main 測試用例目錄 test dir r d git test framework test case ...
unittest單元測試案例 一
實現登陸功能的單元測試 驗證引數有效性函式 def login check username,password param username 登陸使用者名稱 param password 登陸密碼 return if 6 len password 18 if username admin and p...