unittest詳解(一) unittest框架

2022-07-17 07:06:09 字數 2721 閱讀 2434

unittest 介紹了4 個重要的概念: test case, test suite, test runner,test fixture。

1、testcase: 乙個testcase 的例項就是乙個測試用例, 就是乙個完整的測試流程,包括測試前準備環境的搭建(setup),實現測試過程的**(run),以及測試後環境的還原(teardown)。元測試(unittest)的本質也就在這裡,乙個測試用例是乙個完整的測試單元,通過執行這個測試單元,可以對某乙個功能進行驗證。

setup用於設定初始化工作,在每乙個測試用例前先被執行,它與teardown方法相呼應,後者在每乙個測試用例執行後被執行。這裡的初始化工作定義了瀏覽器啟動和基礎url 位址。

def

setup(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 異常:

def

teardown(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...