接口测试基础知识
一、什么是接口
接口一般來說有兩種,一種是程序內部的接口,一種是系統對外的接口。
?
按照分類來說,最常用的兩種接口是webservice接口和http api接口。
webService接口是走soap協議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候都要通過工具才能進行調用,測試。
http api接口是走http協議,通過路徑來區分調用的方法,請求報文都是key-value形式的,返回報文一般都是json串,有get和post等方法,這也是最常用的兩種請求方式。
?
前端和后端的交互也是通過接口實現的。
?
二、什么是接口測試
接口測試是測試系統組件間接口的一種測試。接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
?
三、接口測試流程
1.需求評審,熟悉業務和需求
2.開發提供接口文檔
3.編寫接口測試用例
4.用例評審
5.提測后開始測試
6.提交測試報告
?
四、測試依據----接口規范文檔
即這個接口的使用文檔。
接口文檔至少包括:
1、接口說明
2、調用url
3、請求方法(get\post)
4、請求參數、參數類型、請求參數說明
5、返回參數說明
?
五、怎么測接口
(1)怎么測接口-http接口
我們已經有了接口文檔,就要根據接口文檔來拼接參數調用接口,那么怎么調用呢?
接口請求報文拼接:
1、url?param=value¶m2=value
這種是最簡單的一種,問號前面是請求url,后面是請求的參數名和參數值,多個參數用&來連接。例如https://api.douban.com/v2/book/search?q=小白
2、還有一種就是入參是json串的,那就不能拼接參數了,需要借助工具來完成比如postman。
?
*GET和POST請求:
???????? 如果是get請求的話,直接在瀏覽器里輸入就行了,只要在瀏覽器里面直接能請求到的,都是get請求,如果是post的請求的話,就不行了,就得借助工具來發送。
???????? 1.Get請求只有請求頭沒有請求體。它的數據之間放在URL里面。Post請求是放在BODY里邊。
???????? 2.以前技術不行的時候,Get請求數據有長度限制,post沒有。現在都沒有限制了。
3.Get請求不安全,post請求也不安全。只要通過抓包,post數據也可以看到。
???????? 4.一般get請求用來獲取數據,post請求用來發送數據。
?
*HTTP狀態碼:
每發出一個http請求之后,都會有一個響應,http本身會有一個狀態碼,來標示這個請求是否成功,常見的狀態碼有以下幾種:
1.200
2開頭的都表示這個請求發送成功,最常見的就是200,就代表這個請求是ok的,服務器也返回了。
2.300
3開頭的代表重定向,最常見的是302,把這個請求重定向到別的地方了,
3.400
400代表客戶端發送的請求有語法錯誤,401代表訪問的頁面沒有授權,403表示沒有權限訪問這個頁面,404代表沒有這個頁面
4.500
5開頭的代表服務器有異常,500代表服務器內部異常,504代表服務器端超時,沒返回結果
?
(2)怎么測接口-webservice接口
webservice接口怎么測試呢,他不需要你在拼報文了,會給一個webservice的地址,或者wsdl文件,直接在soapui導入,就可以看到這個webservice里面的所有接口,也有報文,直接填入參數調用,看返回結果就可以了。
天氣預報wsdl地址:http://www.webservicex.net/globalweather.asmx?wsdl
?
六、通用接口用例設計:
(1)通過性驗證:
首先肯定要保證這個接口功能是好使的,也就是正常的通過性測試,按照接口文檔上的參數,正常傳入,是否可以返回正確的結果。
?
(2)接口安全:
1.繞過驗證,比如說購買了一個商品,它的價格是300元,那我在提交訂單時候,我把這個商品的價格改成3元,后端有沒有做驗證,更狠點,我把錢改成-3,是不是我的余額還要增加?
2.繞過身份授權,比如說修改商品信息接口,那必須得是賣家才能修改,那我傳一個普通用戶,能不能修改成功,我傳一個其他的賣家能不能修改成功
3.參數是否加密,比如說我登陸的接口,用戶名和密碼是不是加密,如果不加密的話,別人攔截到你的請求,就能獲取到你的信息了,加密規則是否容易破解。
4.密碼安全規則,密碼的復雜程度校驗
?
(3)異常驗證:
根據必傳非必傳、參數類型、入參長度等內容設計。
?
總之,根據業務邏輯,即根據自己系統的業務來設計用例,這個每個公司的業務不一樣,就得具體的看自己公司的業務了,其實這也和功能測試設計用例是一樣的。
?
七、接口測試用例模板
咱們測試接口的話,肯定要寫測試用例,寫測試用例的話,就要有一個用例模板,那需要有哪些字段呢?
1、項目??????????? 是哪個項目的
2、模塊??????????? 這個接口是屬于哪個功能模塊的
3、用例id
4、接口名稱
5、用例標題????? 用例是干嘛的
6、請求方式????? GET/POST
7、請求url???????? url地址
8、請求參數
9、前置條件?????? 有依賴的時候,比如說要測登錄失敗3次的
10、結果驗證???? 預期結果
11、請求報文????
12、返回報文?
13、測試結果??? 通過/失敗
14、測試人員??
?
?
轉載于:https://www.cnblogs.com/youyou-luming/p/9531550.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結