接口測試的地位
采用金字塔型和橄欖球型來形象說明一下
金字塔型從上到下:UI測試、接口測試哎壳、單元測試
橄欖球型:接口測試在橢圓的中間
可見扎酷,一個產(chǎn)品在完成之前,進行的測試最多的是接口測試贱纠。
什么叫做接口測試
?傳遞固定格式信息并獲得處理結果的一扇門 峻厚。
接口的類型
并非所有應用程序的接口都會以WEB API的方式提供,有些場景需要使用TCP承載接口數(shù)據(jù)
基于TCP的socket接口
公共協(xié)議:如ISO8583
私有協(xié)議: 基于HTTP的WEB接口
基于HTTP的WEB接口
soap風格
soap是一種數(shù)據(jù)交換規(guī)范谆焊,是一種輕量的惠桃、簡單的、基于XML的協(xié)議規(guī)范辖试,其優(yōu)點是易用辜王、靈活、跨平臺罐孝。
RESTful風格
RESTful是一種指導思想呐馆,核心是資源。面向資源莲兢,提供了對應HTTP語義的增刪改查等操作汹来。RESTful不是一種規(guī)范续膳,是目前最流行的WEB API設計風格。 其報文一般采用application/json格式收班。簡單易用坟岔,但是安全性較低。
接口測試的必要性
可以發(fā)現(xiàn)頁面上操作發(fā)現(xiàn)不了的bug
檢查系統(tǒng)的異常處理能力
檢查系統(tǒng)的安全性摔桦、穩(wěn)定性
前端變化不會影響到接口
注: 前后端分離技術
前后端分離解耦是接口測試的重要前提社付,之前采用的是老舊的后端渲染方式。采用了前后端分離方式邻耕,才能開展接口測試鸥咖。
前端:用于展示數(shù)據(jù),提供用戶操作接口(UI)兄世,一般不會包含復雜處理邏輯啼辣,往往會有輸入校驗等基本功能。
后端:用于處理業(yè)務邏輯碘饼,通過接口為前端提供數(shù)據(jù)熙兔。
接口測試案例設計的思路
文檔標準:按照接口文檔上的參數(shù),正常傳入艾恼,是否可以返回正確的結果
參數(shù)組合:有些接口沒有遵循RESTful風格住涉,可能根據(jù)入?yún)⒔M合能完成多個功能 。
接口安全:繞過驗證钠绍,比如提交數(shù)據(jù)時輸入不合法參數(shù)舆声,如負數(shù)、字符串柳爽。
繞過身份授權:比如提交數(shù)據(jù)時更換用戶ID媳握、崗位等信息,觀察結果是否符合預期磷脯。
參數(shù)是否加密:比如敏感信息需要在客戶端經(jīng)過一定的加密規(guī)則發(fā)送到服務器蛾找,可嘗試驗證不加密是否也會正常處理。
后端校驗的補充測試:比如密碼只能設置長度大于8位的大小寫數(shù)字混合赵誓。
異常驗證
所謂的異常驗證打毛,也就是不按照接口文檔上的要求輸入?yún)?shù),來驗證接口對異常的校驗俩功。
比如:必填項為空幻枉,輸入整數(shù)類型的,輸入其它類型(字符串诡蜓、特殊字符)熬甫,長度超長的校驗。
總結
接口測試蔓罚,歸根結底是協(xié)議的解析和字符串的比對椿肩,真正涉及接口的部分瞻颂,無論是通過RF、通用接口模擬器郑象、Python或者其它方式蘸朋,基本上都已經(jīng)有了很成熟的封裝。編寫自動化案例扣唱,只要牢牢掌握報文的組裝拼接與解析比對,就可以應對大部分的接口团南。 掌握報文的組裝拼接與解析對比噪沙,就要求測試人員對協(xié)議本身有一定的認識,尤其對報文結構應該非常熟悉吐根。 如何查看報文正歼,請看下文分解。