執行測試用例時,需要判斷用例是否執行成功,此時需要有乙個我們期望的結果來進行驗證。這裡unittest中,如果乙個case執行的過程中報錯,或者我們判斷結果不符合期望,就會判定此條用例執行失敗,判斷的條件主要是根據斷言來實現,這節主要學習下斷言的使用。
一、斷言的方法
1.1 testcase類中的部分斷言方法
判斷條件是否成立
assert_(expr,msg)
expr:判斷條件,返回boolean值
msg:判斷失敗後顯示的資訊
判斷兩個資料的值是否相同
assertequal(first,second,msg)
first:第乙個資料
second:第二個資料
msg:判斷失敗後顯示的資訊
判斷兩個資料的值是否不相同
assertequal(first,second,msg)
first:第乙個資料
second:第二個資料
msg:判斷失敗後顯示的資訊
判斷條件是否為真
asserttrue(expr,msg)
expr:判斷條件
msg:判斷失敗後顯示的資訊
判斷條件是否為假
assertfalse(expr,msg)
expr:判斷條件
msg:判斷失敗後顯示的資訊
判斷兩個資料是否相同
assertis(first,second,msg)
first:第乙個資料
second:第二個資料
msg:判斷失敗後顯示的資訊
判斷兩個資料是否不相同
assertisnot(first,second,msg)
first:第乙個資料
second:第二個資料
msg:判斷失敗後顯示的資訊
判斷資料是否存在
assertisnone(obj,msg)
obj:所傳的資料
msg:判斷失敗後顯示的資訊
判斷資料是否不存在
assertisnotnone(obj,msg)
obj:所傳的資料
msg:判斷失敗後顯示的資訊
判斷資料a是否包含在資料b中
assertin(a,b,msg)
a:資料a
b:資料b
msg:判斷失敗後顯示的資訊
判斷資料a是否不包含在資料b中
assertnotin(a,b,msg)
a:資料a
b:資料b
msg:判斷失敗後顯示的資訊
1.2 直接使用assert斷言
習慣直接使用python中的assert斷言,替代unittest.testcase中的斷言方法:
具體可以直接使用:
assert a == b
assert a != b
assert a in b
assert a not in b
assert a in none
assert a in not none
二、在框架中使用斷言
由於在使用unittest中,每個類都繼承了unittest.testcase,所以使用時,直接在方法裡使用self來呼叫斷言方法。
import unittest
class demo(unittest.testcase):
def test_01(self):
self.assertequal("demo","demo","兩者不相等")
如果直接使用assert斷言,則可以直接呼叫。
import unittest
class demo(unittest.testcase):
def test_01(self):
assert "demo" == "demo"
from selenium import webdriver
import unittest
from time import sleep
class pclogin(unittest.testcase):
@classmethod
def setupclass(cls):
print("所有測試開始")
def setup(self):
print("測試開始")
self.driver = webdriver.chrome()
self.driver.implicitly_wait(30)
self.driver.set_page_load_timeout(30)
self.driver.get("")
def test_01_demo(self):
"""開啟新頁籤"""
self.driver.find_element_by_css_selector("a[title = '娛樂明星']").click()
all = self.driver.window_handles
self.driver.switch_to.window(all[1])
sleep(5)
def test_02_demo2(self):
"""判斷首頁標題"""
# 這個例子會斷言失敗
def teardown(self):
print("測試完成")
self.driver.close()
@classmethod
def teardownclass(cls):
print("所有測試結束")
ifname== 『main』:
unittest.main()
執行結果:(執行了兩條用例,其中失敗了一條;符合我們預期的結果)
ran 2 tests in 35.273s
failed (failures=1)
process finished with exit code 1
自動化測試 web自動化測試
自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...
怎麼匯出測試用例 怎麼編寫自動化測試用例
本文介紹如何編寫自動化測試用例 記得收藏,哦 下面分享一篇關於自動化用例編寫的文章。用例選型注意事項 1 不是所有的手工用例都要轉為自動化測試用例。2 考慮到指令碼開發的成本,不要選擇流程太複雜的用例。如果有必要,可以考慮把流程拆分多個用例來實現指令碼。3 選擇的用例最好可以構建成場景。例如乙個功能...
介面自動化測試(用例優化)
之前文章實現了乙個簡單的介面自動化測試用例,下面的文章將講解如何將測試用例進行優化,並用excel 進行資料驅動,將測試結果輸出到excel。首先我們先說一下資料驅動,資料驅動即通過讀取檔案內容,將所需要的資料通過檔案讀寫的方式進行輸入輸出。這裡我推薦使用excel來進行資料驅動。1.資料驅動 這裡...