接口測試為什么會如此重要呢?
主要是平常的功能點點點,大家水平都一樣,是個人都能點,面試時候如果問你平常在公司怎么測試的,你除了說點點點,還能說什么呢,無非就是這個項目點完了點那個項目,這就是為什么各行各業的只要手指能點得動的人都來轉行軟件測試了。
面試的時候面試官希望你除了點點點,還能更深入一點的思考頁面上看不到的功能,也就是接口測試了。
接口測試的必要性
可以發現很多頁面操作發現不了的問題
檢查系統的異常處理能力
檢查系統的安全性、穩定性
前端隨便變,接口測好了,后端不用變
可以測試並發情況,一個賬號,同時(大於2個請求)對最后一個商品下單,或不同賬號,對最后一個商品下單
可以修改請求參數,突破前端頁面輸入限制(如金額),檢查系統(接口)有沒有進行校驗
獲取接口相關信息
一般的企業,都會由開發或者對應的技術負責人員編寫接口文檔,里面會注明接口相關的地址、參數類型、方法、輸入、輸出等信息,如果沒有,想辦法獲取。。。
接口測試的流程
需求評審,熟悉業務和需求
開發提供接口文檔
編寫接口測試用例
用例評審
提測后開始測試
提交測試報告
接口文檔 是接口測試的參照,至少包括:
1、接口說明
2、調用url
3、請求方法(get\post ……)
4、請求參數、參數類型、請求參數說明
5、返回參數說明
6、支持格式(xml/json)
接口測試用例設計
通過性驗證:首先保證接口好用,按文檔正常傳入,查看是否可以返回正確的結果。
參數組合:按接口文檔中對參數的要求進行有目的的組合,比如必填未填是否通過,標志類參數值的切換是否能對應正確的功能等。(這部分很關鍵)
接口安全:
1)、繞過驗證,比如說購買了一個商品,它的價格是300元,那我在提交訂單時候,我把這個商品的價格改成3元,后端有沒有做驗證,更狠點,我把錢改成-3,是不是我的余額還要增加?
2)、繞過身份授權,比如說修改商品信息接口,那必須得是賣家才能修改,那我傳一個普通用戶,能不能修改成功,我傳一個其他的賣家能不能修改成功
3)、參數是否加密,比如說我登陸的接口,用戶名和密碼是不是加密,如果不加密的話,別人攔截到你的請求,就能獲取到你的信息了,加密規則是否容易破解。
4)、密碼安全規則,密碼的復雜程度校驗
異常驗證
不按照接口文檔上的要求輸入參數,來驗證接口對異常情況的反應。
性能測試
接口並發情況,如上面提到的:一個賬號,同時(大於2個請求)對最后一個商品下單,或不同賬號,對最后一個商品下單
接口響應時間,響應時間太長了,肯定需要優化,一般都是毫秒級別
接口測試用例模板 (可根據項目實際情況設計增減)
1、項目 測試針對哪個項目
2、模塊 哪個功能模塊
3、用例id
4、接口名稱
5、用例標題 測試用途概括
6、請求方式 GET/POST
7、請求url URL地址
8、請求參數
9、前置條件 執行當前請求依賴的條件,不滿足就不能正確執行
10、結果驗證 預期結果
11、請求報文 可以不寫
12、返回報文 一定要寫,這里應該是你請求返回的真實結果
13、測試結果 通過/失敗
14、測試人員
接口測試用例編排
接口測試常見Bug
1、特殊值處理不當導致程序異常退出或者崩潰
2、類型邊界溢出,導致數據讀出和寫入不一致
3、取值邊界外值未返回正確的錯誤信息
4、參數 為null或空字符串“”等
5、權限未處理,可以訪問其他用戶的信息
例如:無權限可以訪問,或者 一般用戶可以訪問管理員權限)
6、邏輯校驗不完善,可利用漏洞獲取非正當利益
例如:某網站兌換1塊錢需要100幣,當小於100幣時調用后台 接口是否可以兌換
例如:購物結算時為100元,調用 后台接口設為0元
7、狀態處理不當,導致邏輯出現錯誤(可能程序員123都搞懵了)
8、數組類型item個數為0或者item重復時程序異常退出
9、超時問題,超時后處理
10、潛在性能問題(后台提交處理或者把性能風險提前提出)
測試WebSevice接口
不需要像測http接口那樣拼報文,直接把wsdl地址或wsdl文件(這兩個都由開發人員提供)填寫或導入到工具SoapUI里面,工具里可顯示所有相關接口或報文,直接填入參數發送請求參照接口文檔查看結果即可。
Cookie 和 Session
Cookie是存在於本地的一個鍵值對,Session是存在於服務器端的一個鍵值對,通常保存在數據庫或緩存里。Cookie和Session在第一次發送某個請求時成對生成,兩端都會記錄下生成的時間,超出既定的時限后便會自動刪除。當請求在時限內再次發出后,Cookie和Session兩者會相互比對,匹配上了便執行某些操作,匹配不上則不允許執行某些操作,以此實現快速處理,它們並不是孤立作用的。
測試報告模板 查看詳情
結語
接口測試的內容就講到這里啦!如有需要了解軟件測試相關的其他內容,可到「 主頁 」進行查看學習~
同時,有不理解或有誤需要補充的地方也歡迎評論區共同探討大家一起交流技術🤗。
🌻推薦閱讀:
💜軟件測試人員必讀的經典書籍(附電子書),前阿里大佬給我推薦...