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,
)# 做斷言處理,判斷實際結果與期望結果是否一致
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所示。其中,電子標籤又稱為射頻標籤 應答器 資料載體 閱讀器又稱為讀出裝置,掃瞄器 通訊器 讀寫器 取決於電子標籤是否可以無線改寫資料 電子標籤與閱讀器之間通過耦合元件實現射頻訊號的空間 無接觸 耦合 在耦合通道內,根據時序關係,實現能量的傳遞 資...