看到這篇文章的同窗們必定在各類地方看到過「接口測試」這個詞,那麼到底接口測試是測什麼?每一個人可能都有本身的答案;以前跟一個同爲測試的朋友聊天,內容是他的一次面試經歷,面試官問他是否作過接口測試,他給了否認的答案,最後offer的評級沒有給到他的預期;當時我在想,若是是我,會怎樣回答呢?
先跟你們分享下我對接口測試的理解
接口測試是一種測試類型,又是一種測試方法,它是不少個領域測試工做的一部分,同時它又能夠經過不一樣方式來執行;
功能測試
功能測試即咱們常說的黑盒測試,傳統意義上的黑盒測試即驗證開發出來的產品是否知足產品提出的產品需求說明書,而接口實際上也是產品需求的一部分;
例如:
產品需求:客戶端輸入一個詞,點擊按鈕,即按時間倒敘展現這個詞相關的新聞;
功能實現:客戶端將用戶輸入的詞拼成http請求,發往服務端接口,接口查找了這個詞有關的新聞,而且按時間倒敘拼接成json,回覆給客戶端,客戶端按順序展現。
這個例子裏,中心需求 ≈ 接口功能面試
安全測試
常常據說的安全測試很大程度上也屬於接口測試的一部分,由於接口至關於內部服務器和外界的橋樑,若是橋上沒有警衛,那任何人均可以進到內部服務器,這裏說的警衛其實就是接口的安全校驗;
舉個已經爛了的例子:
接口功能:接收用戶輸入的詞,到數據庫查詢這個詞的解釋;
這裏涉及到將用戶輸入的詞拼成sql的過程,接口要作的不只僅只拼接sql並執行,更重要的是過濾用戶輸入的異常字符串;sql
自動化測試
傳統意義上的自動化是客戶端經過框架自動執行黑盒case的過程,但接口測試一樣能夠自動化,看看下面的例子:
測試需求:服務端實現接收客戶端輸入的各類詞語、句子、符號、單詞等等信息,查詢判斷輸入的類型、解釋語句、或者判斷這是個非法查詢,客戶端依據服務端返回的json展現結果。
這個需求須要很是多的輸入case,好比各種短語、字符、全角、半角、空格、繁體、簡體、韓語、日語等等,然而這些case有一些共同的檢查點,好比:返回值要是json格式,必定要有類型字段、是否合法的bool值、若是合法的話要有解釋語句內容;那麼這個需求,咱們就能夠經過自動化來驗證需求;咱們只須要寫好入參的case就行了;數據庫
性能測試
通常來講,性能測試即服務端接口的性能測試,這也是一個需求可否正常上線的重要關注點。
這裏說的接口性能測試最重要的是下面兩部分:
一、服務端能承受的最大壓力;
二、正常負載時的穩定性;json
單元測試
這個理由很簡單,服務端接口也是碼代碼,也有不一樣的模塊、類、函數,能夠經過單測來保證那些服務端接口代碼的底層函數的功能正確性,例如:解析json的函數、處理請求參數的函數、鏈接db的函數等等;安全
如今咱們回過頭想一想上面那個面試官的問題:你作過接口測試嗎?答案應該能講很久。。。
本文分享自微信公衆號 - 搜狗測試(SogouQA)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。服務器