接口測(cè)試概念:
接口:接口是為了提供一種服務(wù)
所有的接口統(tǒng)稱為API,接口分為內(nèi)部接口和外部接口
外部接口:測(cè)試被測(cè)系統(tǒng)和外部系統(tǒng)之間的接口
測(cè)試內(nèi)部接口:
1.內(nèi)部接口提供內(nèi)部系統(tǒng)使用:開發(fā)人員自己開發(fā)的對(duì)自身系統(tǒng)提供的接口)
2.內(nèi)部接口提供外部系統(tǒng)使用:正例,各種異常場(chǎng)景,權(quán)限控制(只需要測(cè)試正例即可),開發(fā)系統(tǒng)調(diào)用外部的其他的接口
————————————————
原文鏈接:https://blog.csdn.net/z2768557792/article/details/125462354
接口的內(nèi)容:
請(qǐng)求方式宋税、接口地址拍柒、協(xié)議脖含、請(qǐng)求頭铺浇、請(qǐng)求體(參數(shù))狸捅、響應(yīng)頭、響應(yīng)體
http響應(yīng)狀態(tài)碼:
404(找不到)丝里、500(內(nèi)部服務(wù)器錯(cuò)誤)吩蔑、200(正常)、302(臨時(shí)重定向)校辩、304(未修改)窘问、403(禁止)、504(超時(shí))
常見(jiàn)接口類型/協(xié)議:
1.HTTP類型/協(xié)議:通過(guò)GET/POST來(lái)獲取數(shù)據(jù)宜咒,在數(shù)據(jù)處理上效率比較高
2.WebService類型/協(xié)議:通過(guò)soap協(xié)議來(lái)獲取數(shù)據(jù)惠赫,比起http來(lái)說(shuō)能處理更加復(fù)雜的數(shù)據(jù)類型。本質(zhì)上也是http協(xié)議
為什么要做接口測(cè)試故黑?
1.開發(fā)初期儿咱,UI和web頁(yè)面設(shè)計(jì)還沒(méi)有到位,提前介入測(cè)試更早發(fā)現(xiàn)問(wèn)題场晶,否則底層的一個(gè)bug會(huì)引起連鎖反應(yīng)混埠。
2.出于接口安全考慮——前端的限制容易繞過(guò),需要同樣測(cè)試后端的限制诗轻;另外測(cè)試接口驗(yàn)證數(shù)據(jù)的加密傳輸钳宪,例如用戶密碼
接口測(cè)試的原理:
模擬客戶端向服務(wù)器發(fā)請(qǐng)求,服務(wù)器接收請(qǐng)求后對(duì)相應(yīng)的請(qǐng)求做處理并向客戶端返回響應(yīng)結(jié)果,客戶端接收結(jié)果的一個(gè)過(guò)程使套。
接口測(cè)試的流程:
1.獲取接口需求并分析
2.編寫接口測(cè)試用例&評(píng)審測(cè)試用例
3.項(xiàng)目環(huán)境部署
4.執(zhí)行測(cè)試&工具選用
5.提交bug并跟進(jìn)
6.單獨(dú)需要整理接口測(cè)試報(bào)告
接口需求分析/用例編寫
http的請(qǐng)求是無(wú)狀態(tài)的罐呼。
如何編寫接口測(cè)試儀用例?
1.接口的正常調(diào)用侦高。即輸入正常的參數(shù)值嫉柴,檢查接口返回的響應(yīng)結(jié)果信息跟接口文檔的預(yù)期是否一致,包括status奉呛、code等计螺;數(shù)據(jù)庫(kù)的增刪改查是否正確。
2.接口的異常驗(yàn)證瞧壮。即依據(jù)限制約束登馒,包括長(zhǎng)度、類型咆槽、必填等異常陈轿,同步考慮邊界值。例如id是支持整數(shù)秦忿,傳遞的是小數(shù)或者字符串麦射,再或者特別大的整數(shù)、負(fù)數(shù)等灯谣。
3.業(yè)務(wù)規(guī)則驗(yàn)證潜秋。例如投資接口中必須有足夠的余額才能投資。
4.接口的安全性驗(yàn)證胎许。對(duì)于用戶的敏感信息進(jìn)行加密峻呛。
5.接口的性能驗(yàn)證。
Jmeter工具的使用:
這里的參數(shù)代表在一秒的時(shí)間內(nèi)要執(zhí)行一次并發(fā)辜窑,而且只執(zhí)行一次钩述,如果循環(huán)選了100次,則會(huì)在接下來(lái)的100秒內(nèi)每秒都執(zhí)行一次谬擦。
要發(fā)送http請(qǐng)求切距,在這里填寫各種信息,名稱自擬惨远,服務(wù)器名稱可以直接填網(wǎng)址谜悟,也可以填I(lǐng)P,路徑填url的后半部分北秽,例如如下網(wǎng)址:https://fanyi.sogou.com/text?keyword=flush%0A%0A&transfrom=auto&transto=zh-CHS&model=general葡幸,服務(wù)器名稱為https://fanyi.sogou.com,路徑為/text?keyword=flush%0A%0A&transfrom=auto&transto=zh-CHS&model=general贺氓。
Jmeter參數(shù)化:
參數(shù)化的3種方式:
調(diào)用變量:${變量名}
1.配置元件:用戶定義的變量
線程組→配置元件→用戶自定義的變量
2.CSV Data Set Config
線程組→配置元件→csv數(shù)據(jù)文件配置
通過(guò)引入csv文件來(lái)提供參數(shù)蔚叨,PS:如果有多個(gè)參數(shù),可以通過(guò)并發(fā)/循環(huán)來(lái)讓所有的參數(shù)都有用武之地。
3.函數(shù)助手對(duì)話框
工具→函數(shù)助手對(duì)話框→random String
可以自己實(shí)現(xiàn)隨機(jī)的字符串:
如圖蔑水,Jmeter會(huì)在0~9中挑選生成3個(gè)隨機(jī)數(shù)邢锯。
關(guān)聯(lián):
概念:兩個(gè)請(qǐng)求,上一個(gè)請(qǐng)求的響應(yīng)結(jié)果搀别,作為下一個(gè)請(qǐng)求的參數(shù)傳入丹擎。
以取token為例:第一個(gè)的請(qǐng)求的token為第二個(gè)請(qǐng)求所用。
1.右鍵第一個(gè)http請(qǐng)求歇父,添加后置處理器蒂培,選擇Json處理器,填寫如下:
“token”代表給取出的Json取名為token變量榜苫;$.data.token_info.token代表在Json文件第一層找data护戳,然后在data中找到第二層的token_info,然后再找到第三層的token垂睬;1代表如果匹配到了多個(gè)token媳荒,就選擇第一個(gè)作為讀取到的值(在開發(fā)中一般不會(huì)出現(xiàn)token有多個(gè)值的情況);“error”代表如果沒(méi)有找到token驹饺,就返回error(自定義)肺樟。
2.在第二個(gè)請(qǐng)求中右鍵添加HTTP信息頭管理器,將剛剛?cè)〉降膖oken匹配上即可:
類似的逻淌,步驟1中的token也可通過(guò)正則表達(dá)式的方式取出。
接口自動(dòng)化:
自動(dòng)化測(cè)試概念:廣義上講疟暖,使用工具或者代碼來(lái)代替人工完成的測(cè)試卡儒,就是自動(dòng)化。