1. 程式人生 > >day1 接口測試基礎

day1 接口測試基礎

加密 到你 包括 ldl AR 請求方法 控制 組件 登錄

1.什麽是接口

接口:系統對外接口、程序對內接口。

2.接口分類:

常用就是webservice接口和http api接口。

webService接口是走soap協議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候都用通過工具才能進行調用,測試。http api接口是走http協議,通過路徑來區分調用的方法,請求報文都是key-value形式的,返回報文一般都是json串,有get和post等方法,這也是最常用的兩種請求方式。

3.什麽是接口測試

接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。接口測試也是功能測試。

4.為什麽要進行接口測試

接口測試可發現一些通過頁面操作測試發現不了的問題,使產品質量更好的得到提高。

A、可以發現很多在頁面上操作發現不了的bug B、檢查系統的異常處理能力 C、檢查系統的安全性、穩定性 D、前端隨便變,接口測好了,後端不用變

5.接口測試流程

A、需求評審,熟悉業務和需求 B、開發提供接口文檔 C、編寫接口測試用例 D、用例評審 五、提測後開始測試 六、提交測試報告

6.接口文檔規範

接口文檔至少包括: 1、接口說明 2、調用url 3、請求方法(get\post) 4、請求參數、參數類型、請求參數說明 5、返回參數說明

7.怎麽測接口--http接口

接口請求報文拼接

1)、url?param=value&param2=value 這種是最簡單的一種,問號前面是請求url,後面是請求的參數名和參數值,多個參數用&來連接 https://api.douban.com/v2/book/search?q=張三

2)、還有一種就是入參是json串的,那就不能拼接參數了,需要借助工具來完成比如postman

get、post請求:

如果是get請求的話,直接在瀏覽器裏輸入就行了,只要在瀏覽器裏面直接能請求到的,都是get請求,如果是post的請求的話,就不行了,就得借助工具來發送。

GET請求和POST請求的區別:

1、GET使用URL或Cookie傳參。而POST將數據放在BODY中。 2、GET的URL會有長度上的限制,則POST的數據則可以非常大。 3、POST比GET安全,因為數據在地址欄上不可見。 4、一般get請求用來獲取數據,post請求用來發送數據。 其實上面這幾點,只有最後一點說的是比較靠譜的,第一點post請求也可以把數據放到url裏面,get請求其實也沒長度限制,post請求看起來參數是隱式的,稍微安全那麽一些些,但是那只是對於小白用戶來說的,就算post請求,你通過抓包也是可以抓到參數的。

http狀態碼:

每發出一個http請求之後,都會有一個響應,http本身會有一個狀態碼,來標示這個請求是否成功,常見的狀態碼有以下幾種: 1、200 2開頭的都表示這個請求發送成功,最常見的就是200,就代表這個請求是ok的,服務器也返回了。 2、300 3開頭的代表重定向,最常見的是302,把這個請求重定向到別的地方了, 3、400 400代表客戶端發送的請求有語法錯誤,401代表訪問的頁面沒有授權,403表示沒有權限訪問這個頁面,404代表沒有這個頁面 4、500 5開頭的代表服務器有異常,500代表服務器內部異常,504代表服務器端超時,沒返回結果。

8.怎麽測接口--webservice接口

不需要拼報文了,會給一個webservice的地址,或者wsdl文件,直接在soapui導入,就可以看到這個webservice裏面的所有接口,也有報文,直接填入參數調用,看返回結果就可以了。

9.通用接口用例設計

通過性驗證:首先肯定要保證這個接口功能是好使的,也就是正常的通過性測試,按照接口文檔上的參數,正常傳入,是否可以返回正確的結果。

接口安全:

1、繞過驗證,比如說購買了一個商品,它的價格是300元,那我在提交訂單時候,我把這個商品的價格改成3元,後端有沒有做驗證,更狠點,我把錢改成-3,是不是我的余額還要增加?

2、繞過身份授權,比如說修改商品信息接口,那必須得是賣家才能修改,那我傳一個普通用戶,能不能修改成功,我傳一個其他的賣家能不能修改成功。

3、參數是否加密,比如說我登陸的接口,用戶名和密碼是不是加密,如果不加密的話,別人攔截到你的請求,就能獲取到你的信息了,加密規則是否容易破解。

4、密碼安全規則,密碼的復雜程度校驗。

異常驗證: 異常的,也就是我不按照你接口文檔上的要求輸入參數,來驗證接口對異常情況的校驗。比如說必填的參數不填,輸入整數類型的,傳入字符串類型,長度是10的,傳11,總之就是你說怎麽來,我就不怎麽來,其實也就這三種,必傳非必傳、參數類型、入參長度。

根據業務邏輯來設計用例:根據自己系統的業務來設計用例。

10.接口測試用例模板

1、項目 是哪個項目的 2、模塊 這個接口是屬於哪個功能模塊的 3、用例id 4、接口名稱 5、用例標題 用例是幹嘛的 6、請求方式 GET/POST 7、請求url url地址 8、請求參數 9、前置條件 有依賴的時候,比如說要測登錄失敗3次的 10、結果驗證 預期結果 11、請求報文 12、返回報文 13、測試結果 通過/失敗 14、測試人員

11.cookie和session

cookie:存放在本地的一個鍵值對,保存客戶簡單的信息。session:存放在服務端的一個鍵值對,存放重要安全性高的數據。(資料參考:http://www.nnzhp.cn/archives/426)

其他:

Json是一種通用數據類型。

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E5%8D%9A%E5%AE%A2%E5%9B%AD&rsv_pq=ff8364cd0004bbcc&rsv_t=ae137%2FLDlhoX2c0nv3%2F8ELuN%2F9i3CKLWK%2B5FM6KZXBlEtEYsPt1QcQ1h8ug&rqlang=cn&rsv_enter=1&rsv_sug3=3&rsv_sug1=1&rsv_sug7=100


http請求:請求頭和請求體

header: 傳輸一些額外的信息

day1 接口測試基礎