unittest認識及工作原理

2021-09-26 04:32:42 字數 2726 閱讀 4621

1.unittest認識

unittest是python內建的單元測試框架,具備編寫用例、組織用例、執行用例、輸出報告等自動化框架的條件。

使用unittest前需要了解該框架的五個概念: 即test case,test suite,testloader,test runner,test fixture。

test case :乙個完整的測試單元,執行該測試單元可以完成對某乙個問題的驗證,完整體現在:

測試前環境準備(setup),執行測試**(run),以及測試後環境還原(teardown);

test suite :多個測試用例的集合,測試套件或測試計畫;

testloader :載入testcase到testsuite中的,其中loadtestsfrom__()方法用於尋找testcase,並建立它們的例項,然後新增到testsuite中,返回testsuite例項;

test runner :執行測試用例,並將測試結果儲存到texttestresult例項中,包括執行了多少測試用例,成功了多少,失敗了多少等資訊;

test fixture:乙個測試用例的初始化準備及環境還原,主要是setup() 和 setdown()方法;

2.unitest的工作原理

通過unittest類呼叫分析,可將框架的工作流程概況如下:

編寫testcase,由testloader載入testcase到testsuite,然後由texttestrunner來執行testsuite, 最後將執行的結果儲存在texttestresult中。

#coding:utf8

from selenium import webdriver # webdriver屬於selenium的api

import unittest # unittest是python自帶的模組

import time

class

test_mail_login

(unittest.testcase)

:# 定義乙個類並整合 unittest 基類中的 testcase 類

defsetup

(self)

:# 每個測試case執行之前執行(前置條件)

self.driver = webdriver.chrome(

)# 驅動谷歌瀏覽器

self.driver.get(

"") self.driver.set_window_size(

800,

1000

)# 視窗大小設定

# self.driver.maximize_window() # 視窗最大化

time.sleep(2)

self.driver.find_element_by_id(

"kw"

).send_keys(

"網易"

) time.sleep(3)

self.driver.find_element_by_id(

"su"

).click(

) self.driver.implicitly_wait(5)

# 頁面靜置5秒,無任何動作

deftest_mail_loginsuc

(self)

:# 設計測試用例(case)重點注意,方法名必須以【test_】開頭

self.driver.find_element_by_id(

"op_email3_username"

).send_keys(

"testerhunter"

) time.sleep(2)

self.driver.find_element_by_class_name(

"op_email3_password"

).send_keys(

"123456hunter"

) time.sleep(2)

self.driver.find_element_by_class_name(

"c-btn"

).click(

) self.handles = self.driver.window_handles # 獲取所有控制代碼

self.driver.switch_to_window(self.handles[-1

])# 控制代碼轉換,獲得當前控制代碼

time.sleep(3)

txt = self.driver.find_element_by_id(

"spnuid"

).text # 獲取頁面固定內容的文字

print

(txt)

self.assertequal(txt,

"[email protected]"

)# 做斷言處理,判斷實際結果與期望結果是否一致

defteardown

(self)

:# 每個測試case執行完之後執行(後置條件)

self.driver.delete_all_cookies(

)# 清空所有cookies值,讓頁面更清潔,反應更快,避免造成快取問題

self.driver.quit(

)# 關閉瀏覽器

if __name__ ==

'__main__'

: unittest.main(

)# 這種執行方式,用例的執行順序是無序的

unittest基本原理及介紹(python篇)

unittest是python自帶的測試框架,還有乙個框架是 pytest,這裡簡單介紹下unittest模組的簡單應用 unittest是python的標準測試庫,相比於其他測試框架是python目前使用最廣的測試框架。test fixture,test case,test suite,test ...

sql注入原理及基本認識

sql注入簡介 所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將 惡意的 sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞...

RFID簡介及工作原理

rfid的工作原理 射頻識別系統的基本模型如圖8 1所示。其中,電子標籤又稱為射頻標籤 應答器 資料載體 閱讀器又稱為讀出裝置,掃瞄器 通訊器 讀寫器 取決於電子標籤是否可以無線改寫資料 電子標籤與閱讀器之間通過耦合元件實現射頻訊號的空間 無接觸 耦合 在耦合通道內,根據時序關係,實現能量的傳遞 資...