Web自動化測試 測試用例斷言

2021-10-07 21:26:25 字數 2996 閱讀 9115

執行測試用例時,需要判斷用例是否執行成功,此時需要有乙個我們期望的結果來進行驗證。這裡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.資料驅動 這裡...