斷言也就是判斷實(shí)際結(jié)果與預(yù)期結(jié)果是否相等祟印,如果相等測試通過枕荞,否則測試失敗胸竞,自動(dòng)化測試不管是UI,Services還有unit都需要做斷言芝雪。
1.動(dòng)態(tài)結(jié)果斷言
-
通常我們做結(jié)果測試會(huì)遇到輸入?yún)?shù)與返回結(jié)果的映射關(guān)系锦溪,如下excel所示
-
大家看到這樣的數(shù)據(jù)源不脯,肯定是需要做循環(huán)執(zhí)行的
-
設(shè)置斷言(Script Assertion)
-
Groovy腳本動(dòng)態(tài)驗(yàn)證結(jié)果
-
Groovy腳本
//動(dòng)態(tài)獲取實(shí)際結(jié)果
def response = context.expand( '${getApp#Response#$.data.AppId}' )
//動(dòng)態(tài)獲取預(yù)期結(jié)果
def appId=context.expand( '${deviceIdAndAppId#appId}' )
//log.info response
//log.info appId
//斷言實(shí)際結(jié)果與預(yù)期結(jié)果
assert response==appId
-
取消設(shè)置錯(cuò)誤發(fā)生忽略測試
由于該接口測試是個(gè)集合,所以返回的結(jié)果有的是成功的刻诊,有的是失敗的防楷,當(dāng)失敗發(fā)生時(shí)測試是不能停止的需要繼續(xù)執(zhí)行,所以我們要取消該設(shè)置
菜單操作路徑:選中Test Case右鍵菜單->Options
-
查看執(zhí)行結(jié)果
2.HTTP的狀態(tài)斷言
比如請求返回成功的狀態(tài)碼為200则涯,可以設(shè)置如下
-
增加Valid HTTP Status Codes Assertion
-
斷言設(shè)置為200
3.返回Json數(shù)據(jù)的總數(shù)驗(yàn)證
比如接口請求之后會(huì)返回一個(gè)產(chǎn)品列表复局,我們需要驗(yàn)證列表的總數(shù)
-
增加Json Path Count Assertion
-
設(shè)置期望結(jié)果
4.驗(yàn)證結(jié)果包含
比如結(jié)果請求之后要驗(yàn)證返回結(jié)果包含某個(gè)特定字符
-
增加Contains Assertion
-
設(shè)置期望結(jié)果
5.固定的返回值
比如請求的接口會(huì)返回“成功”或“失敗”的字眼,這個(gè)時(shí)候我們就可以驗(yàn)證這個(gè)固定的返回值
-
設(shè)置方式跟驗(yàn)證包含是一樣的