介面測試:是測試系統元件間介面的一種測試。(以及系統內部各個子模組之間的介面)[內部介面、外部介面]
作用:用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。
目的:檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等,盡早地避免一些錯誤的出現。
與單元測試有相似之處。都需要用到如:邊界值法,等價類法等基本測試方法。
乙個很好的測試用例設計過程應該是建立在前期深入的需求分析和文件設計的基礎之上。需求分析得越深入全面、文件描述越詳細清晰,則設計的介面測試用例就會越全面,越能暴露出介面的缺陷,從而提供出高質量的服務介面。並且在後續介面維護過程中,有詳盡的介面設計文件作為支撐,也可以降低維護成本
要求:驗證介面實現的功能、效能指標、介面設計文件的一致性
驗證容錯機制,能在接收到異常輸入資料時,返回有意義的錯誤資訊
選擇有意義、關鍵的介面進行測試
在介面設計文件中尋找關於此介面的引數個數、型別、長度、內容、格式等
總設計要求:
介面測試用例的內容包括引數組合(輸入引數內容)、預期結果(介面的返回值、輸出引數內容)、環境
引數的輸入遵循等價類、邊界值等常用的設計方法,用最少的用例達到最大覆蓋,保證沒有多餘重複的,每一條都有存在的意義
每一條用例需要有完善的初始化操作和結束操作。每一條用例都要對上一次的輸出、這一次的輸入進行處理,防止不確定的執行結果對測試環境的影響。在出現bug時,可以排除用例和指令碼的bug
根據該介面實現的功能分析出該介面的正常用例包括哪幾種輸入引數的組合,從而覆蓋所有的正常分支(輸入有兩種①直接賦值②其他介面的輸出,必須初始化引數)(根據自然邏輯進行排列組合,排除、合併組合,控制用例總數,避免冗餘重複的用例)
特殊組合的編寫,也就是場景法。(①設定場景的所有模組都加入測試,比較**實使用者的場景,但是很難找到bug所在位置②只對這乙個介面進行測試,結果直觀、不用外搭環境但需要寫指令碼,但是不能保證介面間的問題)
選取一條正確的用例作為基礎資料,遍歷引數、逐個列舉該引數的異常值(控制變數法和邊界值、等價類,也就是除了測試的引數,其他的引數都保持正確,從而保證異常是由這個測試引數造成的)
某些指標型別的資料錯誤是否被及時捕獲,並返回正確無歧義的錯誤碼(錯誤碼很重要,一定要保證錯誤型別一致錯誤碼唯
一、標識性)
重複呼叫、併發呼叫、事務中斷、大資料量測試
關注因子:響應速度、吞吐量、tps等
弱網、斷網
國際網外部呼叫介面的安全
許可權問題
sql注入問題
外部介面測試的輸入:
呼叫url
請求方法(get\post)
請求引數、引數型別、請求引數說明
請求體外部介面測試的測試點:
請求是否成功
檢測返回資料的正確性以及格式
介面的安全性(安全證書)
效能包括上面測試用例的設計(引數方面)
效能、網路、安全等
伺服器內部介面測試輸入:
按規定輸入,可以是自己實現的,也可以是上乙個介面的輸出
伺服器內部介面測試點:
關注底層,比如像資料的大寫,型別,內容格式等,因為是直接和資料庫進行操作,必須保證不存在不可預期的底層錯誤,比如/後面跟的東西存到資料庫中是不是就跟以前不一樣了。
關注介面內部邏輯,保證每一條語句,每一種可能都被覆蓋到。
效能、裝置相容、作業系統相容、介面、安全等
介面測試的主要關注:
(細化介面的輸入格式)
介面測試的必要性:
①、可以發現很多在頁面上操作發現不了的bug
②、檢查系統的異常處理能力
③、檢查系統的安全性、穩定性
④、前端隨便變,介面測好了,後端不用變
介面測試的工具很多,比如 postman、restclient、jmeter、loadrunner、soapui等,本人首推的測試工具是postman和jmeter
工具使用參照:
本文絕大部分來自度娘~~
介面是什麼?
1.介面是什麼?介面就是讓一些不相關的物件來實現同樣的通能,就可以定義乙個介面,讓這些物件都來實現這個介面。介面的組成 可由屬性 方法 事件 索引器或這四種成員型別的任意組合構成。注意 介面不能有欄位 2.為什麼要有介面?比如,麻雀 老鷹 鴿子 企鵝都是鳥類 如果他們都繼承鳥類,則他們都會飛,但是事...
介面是什麼?實現原理的是什麼
一.什麼是介面 介面是一種用來定義程式的協議,它描述可屬於任何類或結構的一組相關行為。介面是一組規則的集合,它規定了實現本介面的類或介面必須擁有的一組規則。體現了自然界 如果你是 則必須能 的理念。介面是在一定粒度檢視上同類事物的抽象表示。因為 同類事物 這個概念是相對的,它因為粒度檢視不同而不同。...
介面是什麼鬼?
二 為什麼要寫介面文件?1 專案開發過程中前後端工程師有乙個統一的檔案進行溝通交流開發 2 專案維護中或者專案人員更迭,方便後期人員檢視 維護 三 介面規範是什麼?首先介面分為四部分 方法 uri 請求引數 返回引數 1 方法 新增 post 修改 put 刪除 delete 獲取 get 2 ur...