- 今天完成接口測(cè)試中最重要的一環(huán),斷言建蹄。
- 開(kāi)始打卡斷言組件之前,想咨詢大家一個(gè)問(wèn)題,在日常工作中是怎么進(jìn)行斷言的?對(duì)于接口測(cè)試來(lái)說(shuō),斷言又要怎么進(jìn)行?
- 通俗的理解是斷言是判斷實(shí)際結(jié)果是否符合預(yù)期結(jié)果的一個(gè)過(guò)程。但是,怎么確定自己的預(yù)期結(jié)果是對(duì)的?有個(gè)小故事:
- 1.有三個(gè)人首次訪問(wèn)蘇格蘭躺翻,透過(guò)火車(chē)窗戶他們看到一只黑色的羊。第一個(gè)人驚呼:看女揭,蘇格蘭的羊都是黑的肋杖。
- 2.第二個(gè)人說(shuō):不對(duì),你只能說(shuō)蘇格蘭的羊至少有一只是黑的勘纯。
- 3.第三個(gè)人說(shuō):不對(duì)局服,你們只能說(shuō)蘇格蘭至少有一只羊的一邊是黑的。
- 那么,針對(duì)于上面的場(chǎng)景,誰(shuí)的話是對(duì)的?
接口信息說(shuō)明:
用戶管理模塊
登錄接口
api:post
method:post
request data:
{
"loginName":"IDO",
"passwd":"123"http://base編碼
}
退出接口:
api:get
method:get
添加用戶接口:
api:post
method:post
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"login_name":"IDO",
"phone":"13100000000",
"real_name":"老徐",
"token":""
}
刪除用戶接口
api:put
method:put
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"login_name":"IDO",
"phone":"13100000000",
"real_name":"老徐",
"token":""
}
博文管理模塊:
添加博文接口:
api:post
method:post
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"blog_name":"21天打卡",
"bolg_title":"Jmeter打卡之Day16",
"blog_details":"21天打卡",
"token":""
}
刪除博文接口:
api:delete
method:delete
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"blog_name":"21天打卡",
"bolg_title":"Jmeter打卡之Day16",
"blog_details":"21天打卡",
"token":""
}
[toc]
1. 斷言組件說(shuō)明
JMeter為我們提供了各式各樣的斷言,今天的打卡,列舉常用的幾個(gè)斷言,以及使用場(chǎng)合驳遵。
斷言的使用范圍,可以應(yīng)用于主取樣器淫奔、子取樣器或兩者。如下所示:
1.1 響應(yīng)斷言
響應(yīng)斷言的適用于返回的是HTML文本,或者是XML文本等格式,控制面板中允許添加要與請(qǐng)求或響應(yīng)的各個(gè)字段進(jìn)行比較的模式字符串堤结。
- 整體的運(yùn)行規(guī)則:
實(shí)際結(jié)果-->匹配規(guī)則-->預(yù)期結(jié)果
回憶一下剛開(kāi)始進(jìn)行簡(jiǎn)單的斷言操作:
- 實(shí)際意思為:實(shí)際結(jié)果中的響應(yīng)文本有字符串百度一下,如果是百度二下呢?斷言結(jié)果當(dāng)然是失敗了唆迁。(亂碼除外)
1.2 JSON斷言
JSON斷言組件適用于返回?cái)?shù)據(jù)是JSON格式的,對(duì)JSON 文檔執(zhí)行驗(yàn)證逗余。首先卖陵,它將解析 JSON,如果數(shù)據(jù)不是 JSON徘郭,它將失敗来庭。
- JSON斷言有兩種匹配規(guī)則:
- a. 使用JsonPath的語(yǔ)法搜索指定的路徑妒蔚。如果未找到路徑,它將失敗。
-
b.如果在文檔中找到 JSON 路徑肴盏,并且請(qǐng)求對(duì)預(yù)期值進(jìn)行驗(yàn)證科盛,它將執(zhí)行驗(yàn)證。對(duì)于null值菜皂,GUI 中有一個(gè)特殊的復(fù)選框
-
1.3 大小斷言
大小斷言這個(gè)組件比較雞肋,根據(jù)響應(yīng)數(shù)據(jù)的字節(jié)大小來(lái)進(jìn)行斷言贞绵。
- 大小斷言測(cè)試每個(gè)響應(yīng)中包含正確的字節(jié)數(shù)』衅可以指定大小等于榨崩、大于、小于或不等于給定的字節(jié)數(shù)章母。
- 控制面板也比較簡(jiǎn)單,運(yùn)行順序是
完整響應(yīng)-->比較類(lèi)型-->字節(jié)大小
2.作業(yè)場(chǎng)景
- Jmeter的打卡也到了尾聲,這個(gè)階段大家了解了前置處理器,后置處理器,JDBC連接數(shù)據(jù)庫(kù)xxx
- 接口詳情中提供了幾個(gè)接口,針對(duì)于這幾個(gè)接口,設(shè)計(jì)接口測(cè)試用例,并用jmeter進(jìn)行接口測(cè)試(用戶管理模塊用JSON斷言,博文管理模塊用響應(yīng)結(jié)果斷言),并查看察看結(jié)果樹(shù)和斷言結(jié)果母蛛。
3.示例腳本
3.1 圖片示例
3.2 腳本示例
百度網(wǎng)盤(pán)示例
鏈接:https://pan.baidu.com/s/18uExfEicKcwbPdpQwqxfZg
提取碼:3bo0
GitHub示例
Day20.常用斷言使用JSON斷言響應(yīng)結(jié)果斷言