接口測試基礎(chǔ)知識
采用金字塔型和橄欖球型來形象說明一下可見,一個產(chǎn)品在完成之前,進行的測試最多的是接口測試。
什么叫做接口測試
傳遞固定格式信息并獲得處理結(jié)果的一扇門 。
接口的類型
并非所有應(yīng)用程序的接口都會以WEB API的方式提供,有些場景需要使用TCP承載接口數(shù)據(jù)
基于TCP的socket接口
基于HTTP的WEB接口
<div>soap風(fēng)格</div><div>soap是一種數(shù)據(jù)交換規(guī)范,是一種輕量的、簡單的、基于XML的協(xié)議規(guī)范,其優(yōu)點是易用、靈活、跨平臺。</div><div>RESTful風(fēng)格</div><div>RESTful是一種指導(dǎo)思想,核心是資源。面向資源,提供了對應(yīng)HTTP語義的增刪改查等操作。RESTful不是一種規(guī)范,是目前最流行的WEB API設(shè)計風(fēng)格。 其報文一般采用application/json格式。簡單易用,但是安全性較低。</div>接口測試的必要性
<div>可以發(fā)現(xiàn)頁面上操作發(fā)現(xiàn)不了的bug</div><div>檢查系統(tǒng)的異常處理能力</div><div>檢查系統(tǒng)的安全性、穩(wěn)定性</div><div>前端變化不會影響到接口</div>
注: 前后端分離技術(shù)
<div>前后端分離解耦是接口測試的重要前提,之前采用的是老舊的后端渲染方式。采用了前后端分離方式,才能開展接口測試。</div><div>前端:用于展示數(shù)據(jù),提供用戶操作接口(UI),一般不會包含復(fù)雜處理邏輯,往往會有輸入校驗等基本功能。</div><div>后端:用于處理業(yè)務(wù)邏輯,通過接口為前端提供數(shù)據(jù)。</div>
接口測試案例設(shè)計的思路
<div>文檔標(biāo)準(zhǔn):按照接口文檔上的參數(shù),正常傳入,是否可以返回正確的結(jié)果</div><div>參數(shù)組合:有些接口沒有遵循RESTful風(fēng)格,可能根據(jù)入?yún)⒔M合能完成多個功能 。</div><div>接口安全:繞過驗證,比如提交數(shù)據(jù)時輸入不合法參數(shù),如負數(shù)、字符串。</div><div>繞過身份授權(quán):比如提交數(shù)據(jù)時更換用戶ID、崗位等信息,觀察結(jié)果是否符合預(yù)期。</div><div>參數(shù)是否加密:比如敏感信息需要在客戶端經(jīng)過一定的加密規(guī)則發(fā)送到服務(wù)器,可嘗試驗證不加密是否也會正常處理。</div><div>后端校驗的補充測試:比如密碼只能設(shè)置長度大于8位的大小寫數(shù)字混合。</div>
異常驗證
<div>所謂的異常驗證,也就是不按照接口文檔上的要求輸入?yún)?shù),來驗證接口對異常的校驗。</div><div>比如:必填項為空,輸入整數(shù)類型的,輸入其它類型(字符串、特殊字符),長度超長的校驗。</div>
總結(jié)
接口測試,歸根結(jié)底是協(xié)議的解析和字符串的比對,真正涉及接口的部分,無論是通過RF、通用接口模擬器、Python或者其它方式,基本上都已經(jīng)有了很成熟的封裝。編寫自動化案例,只要牢牢掌握報文的組裝拼接與解析比對,就可以應(yīng)對大部分的接口。 掌握報文的組裝拼接與解析對比,就要求測試人員對協(xié)議本身有一定的認識,尤其對報文結(jié)構(gòu)應(yīng)該非常熟悉。
頁:
[1]