接口測(cè)試:什么是接口測(cè)試?怎樣做接口測(cè)試?
什么是接口測(cè)試?
接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種方式,接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)。
所謂接口,是指同一個(gè)系統(tǒng)中模塊與模塊間的數(shù)據(jù)傳遞接口、前后端交互、跨系統(tǒng)跨平臺(tái)跨數(shù)據(jù)庫的對(duì)接。
而接口測(cè)試,則是通過接口的不同情況下的輸入,去對(duì)比輸出,看看是否滿足接口規(guī)范所規(guī)定的功能、安全以及性能方面的要求。
為什么要做接口測(cè)試?
接口測(cè)試有以下幾個(gè)優(yōu)點(diǎn):
-
相比系統(tǒng)測(cè)試,更早介入測(cè)試,提高效率
-
可以發(fā)現(xiàn)前端測(cè)試不了的問題,提高版本質(zhì)量
-
接口標(biāo)準(zhǔn)化了,更容易實(shí)現(xiàn)自動(dòng)化和持續(xù)集成,降低測(cè)試成本
因此在軟件測(cè)試招聘崗位的要求中,無論是功能測(cè)試、自動(dòng)化測(cè)試、性能測(cè)試亦或測(cè)試開發(fā)崗位,接口測(cè)試都是必須掌握的!!!!!
如何開展接口測(cè)試?
接口測(cè)試的開展一般包含5個(gè)部分:接口文檔分析、接口用例設(shè)計(jì)、執(zhí)行接口用例、定位bug提交并跟蹤、輸出接口測(cè)試報(bào)告。
1. 接口文檔分析
接口文檔一般是由后端開發(fā)提供,可以是在線的swagger也可以是word。若開發(fā)未提供接口文檔,則可通過抓包工具fiddler或charles去抓取接口信息進(jìn)行分析,進(jìn)行接口測(cè)試。
獲取到接口文檔后,我們需要理清楚每個(gè)接口包含的請(qǐng)求、響應(yīng)信息,概括為 接口信息五要素:
-
接口地址 url:http-請(qǐng)求協(xié)議,api.demo.com-域名或ip,8080-端口號(hào),/login-資源路徑
-
請(qǐng)求方法:看開發(fā)定義的請(qǐng)求方法是什么,測(cè)試就對(duì)應(yīng)用什么方法。restful 風(fēng)格中常見的請(qǐng)求方法為 post、get、put、patch、delete 等,也有一些不規(guī)范的公司只用 get、post 這兩種。
-
請(qǐng)求頭 headers:發(fā)送請(qǐng)求到服務(wù)器,包含的頭部信息。常見的 content-type、token、User-Agent等或者帶上一些反爬的措施。
-
請(qǐng)求體 body/params:發(fā)送請(qǐng)求到服務(wù)器,具體傳遞的數(shù)據(jù)。例如要完成登錄接口的調(diào)用,請(qǐng)求體包含手機(jī)號(hào) phone、密碼pwd、驗(yàn)證碼 code 等等。
-
響應(yīng)內(nèi)容:接口文檔中描述的響應(yīng)內(nèi)容,與接口測(cè)試的實(shí)際結(jié)果做比較,可以判斷當(dāng)前接口是否通過。響應(yīng)內(nèi)容包含:響應(yīng)碼-http狀態(tài)碼、響應(yīng)頭、響應(yīng)體等等。
2. 接口用例設(shè)計(jì)
接口用例設(shè)計(jì)跟功能測(cè)試思維相通,需要:
-
清楚項(xiàng)目業(yè)務(wù)!!! 這個(gè)是重點(diǎn),如果業(yè)務(wù)部清除,只能是胡亂測(cè)試,浪費(fèi)產(chǎn)品,研發(fā),測(cè)試大家自身的時(shí)間
-
用例設(shè)計(jì)8大方法:等價(jià)類、邊界值、場(chǎng)景法、狀態(tài)遷移法、錯(cuò)誤推測(cè)法等等一大堆。
-
用例設(shè)編寫常用模板:常見的有yarm,Excel,MySQL,xmind。推薦使用excel,方便快捷,復(fù)制粘貼簡(jiǎn)單!
-
常用測(cè)試工具:純Python/ target=_blank class=infotextkey>Python腳本、postman、jmeter;建議使用純python,可以鍛煉自己的代碼能力,提升自審的綜合能力!
以下是使用excel編寫的一個(gè)簡(jiǎn)單的登錄功能的接口用例模板參考:
用例編號(hào) | 接口地址 | 請(qǐng)求方法 | 請(qǐng)求頭 | 請(qǐng)求體 | 前置腳本 | 后置腳本 | 預(yù)期結(jié)果 | 實(shí)際結(jié)果 | 測(cè)試結(jié)果 |
---|---|---|---|---|---|---|---|---|---|
TC01 | /login | POST | Application/json | {"phone":"13800000000","pwd":"12345678","code":"1234"} | 參數(shù)加密 | 參數(shù)提取 | {"code":200,"msg":"OK","data":{"id":1,"name":"test"}} | 同預(yù)期 |
3. 執(zhí)行接口用例,進(jìn)行接口測(cè)試
接口測(cè)試原理:
模擬客戶端(瀏覽器)發(fā)送請(qǐng)求到服務(wù)器,服務(wù)器接收請(qǐng)求并處理,返回響應(yīng)到客戶端, 客戶端接收響應(yīng)這樣的一個(gè)過程。
通過接口測(cè)試原理可知,進(jìn)行接口測(cè)試需要借助工具或代碼。主流的接口測(cè)試工具有python、Jmeter、postman等。使用工具編寫腳本,需要結(jié)合接口項(xiàng)目具體應(yīng)用場(chǎng)景來設(shè)計(jì),運(yùn)用關(guān)聯(lián)、參數(shù)化、斷言等技術(shù)。
例如,使用postman工具來執(zhí)行登錄功能的接口用例,步驟如下:
-
在postman中創(chuàng)建一個(gè)新的請(qǐng)求,填寫接口地址url和請(qǐng)求方法POST
-
在Headers選項(xiàng)卡中添加請(qǐng)求頭Content-Type:application/json
-
在Body選項(xiàng)卡中選擇raw模式(json),輸入請(qǐng)求體數(shù)據(jù)
-
點(diǎn)擊Send按鈕發(fā)送請(qǐng)求,查看響應(yīng)內(nèi)容
-
在Tests選項(xiàng)卡中編寫斷言腳本,驗(yàn)證響應(yīng)內(nèi)容是否符合預(yù)期
-
在Collection Runner中批量執(zhí)行多個(gè)接口用例,并生成測(cè)試報(bào)告
4. 發(fā)現(xiàn)bug、定位、提交并跟蹤
怎么判斷是否是bug呢?
-
接口測(cè)試中響應(yīng)結(jié)果錯(cuò)誤,返回了錯(cuò)誤的code碼、msg信息:
判斷請(qǐng)求:請(qǐng)求地址、方式、請(qǐng)求頭、請(qǐng)求正文是否正確,如果不正確則修改對(duì)應(yīng)請(qǐng)求信息再做發(fā)送;如果正確,則說明是服務(wù)器端問題
進(jìn)一步查看服務(wù)器日志、數(shù)據(jù)庫信息,并整理信息提交bug
-
接口測(cè)試中響應(yīng)結(jié)果,code碼、msg正確,但返回的data數(shù)據(jù)不正確:
查看數(shù)據(jù)庫數(shù)據(jù)正確完整性,并結(jié)合服務(wù)器日志,整理信息提交bug
-
接口測(cè)試中響應(yīng)結(jié)果正確,比如:增刪改業(yè)務(wù)操作:
需進(jìn)一步確認(rèn)到數(shù)據(jù)庫層面,數(shù)據(jù)增刪改的正確性
-
考慮安全性:一般接口對(duì)請(qǐng)求會(huì)做出一些限制,比如請(qǐng)求次數(shù)、請(qǐng)求頻率限制;涉及敏感信息是否加密
5. 接口測(cè)試報(bào)告
接口測(cè)試報(bào)告的整理這個(gè)看公司要求。
有些公司是在整個(gè)項(xiàng)目測(cè)試結(jié)束后,整理一份統(tǒng)一的測(cè)試報(bào)告。
有些公司會(huì)要求輸出階段性的測(cè)試報(bào)告。
接口測(cè)試報(bào)告一般包含以下內(nèi)容:
-
測(cè)試目的:說明本次測(cè)試的目標(biāo)和范圍
-
測(cè)試環(huán)境:說明測(cè)試所使用的硬件、軟件、網(wǎng)絡(luò)等條件
-
測(cè)試工具:說明測(cè)試所使用的工具或代碼
-
測(cè)試結(jié)果:說明測(cè)試執(zhí)行的總體情況,包括通過率、失敗率、缺陷數(shù)等
-
測(cè)試分析:說明測(cè)試發(fā)現(xiàn)的問題和建議,以及對(duì)測(cè)試過程和效果的評(píng)價(jià)
-
測(cè)試附件:提供相關(guān)的測(cè)試文檔和數(shù)據(jù)
如果公司有自己的平臺(tái)或者框架,一般都是直接將測(cè)試報(bào)告結(jié)果自動(dòng)發(fā)送處理或者手動(dòng)導(dǎo)出發(fā)郵件或者釘釘、企業(yè)微信之類的提交,也有一些不太規(guī)范的公司,直接就是測(cè)試人員自己看測(cè)試結(jié)果,看完就結(jié)束整個(gè)過程(吐槽一下:這種公司一般開發(fā)、產(chǎn)品都不怎么關(guān)心接口質(zhì)量,比較多的是關(guān)心前端輸入不導(dǎo)致出錯(cuò),具體說就是質(zhì)量意識(shí)不強(qiáng)!!作者生涯以及作者的大部分朋友在工作中遇到的大部分都是這種公司 )!!
總之:接口測(cè)試是軟件測(cè)試中不可或缺的一部分,它可以有效地提高軟件質(zhì)量和開發(fā)效率。