接口測試javascript
接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。php
--百度百科css
爲何介紹接口測試?html
接口常被開發掛在嘴邊,在開發過程當中無處不在,但對於測試人員來講,它又如此朦朧,無形無色無味,難以觸碰。相信這也是測試人員比較難理解的一種測試類型。查詢的大部分資料都是介紹一堆模糊的概念。因此,我打算以淺薄的認知來介紹接口測試,固然會舉例子。前端
我所知道的接口測試java
我所瞭解的模塊接口測試大致分爲兩類:模塊接口測試和web接口測試。python
模塊接口測試 web
模塊接口測試是單元測試的基礎。它主要測試模塊的調用與返回。算法
package com.java.base; public class InterfaceTest { //求兩個整數相加的和
public static int add(int a, int b){ return a + b; } public static void main(String[] args) { //測試整數相加
int resule = add(1,2); if(resule == 3){ System.out.println("success!"); }else{ System.out.println("fail!"); } } }
我擦!這明明是一個沒有使用單元測試框架的單元測試嘛!但其實咱們也能夠把add()方法當作一個接口,這個接口接收兩個整數並返回兩個整數的和。json
經過這個例子放大了來看,假如幾個開發人員去完成一個系統,他們分別開發一些功能模塊,最終數據會在這些功能模塊之間傳遞。當A開發好本身負責的功能模塊後會提供相應的接口(類方法、函數),B確定須要模擬數據調用A寫的接口,檢查返回值是否正確。
固然,測試的手段遵循測試的一些要點。
一、檢查接口返回的數據是否與預期結果一致。
二、檢查接口的容錯性,假如傳遞數據的類型錯誤時是否能夠處理。例如上面的例子是支持整數,傳遞的是小數或字符串呢?
三、接口參數的邊界值。例如,傳遞的參數足夠大或爲負數時,接口是否能夠正常處理。
四、接口的性能,接口處理數據的時間也是測試的一個方法。牽扯到內部就是算法與代碼的優化。
五、接口的安全性,若是是外部接口的話,這點尤其重要。
web接口測試
web接口測試又可分爲兩類:服務器接口測試和外部接口測試。
服務器接口測試:是測試瀏覽器與服務器的接口。這個很容易理解,咱們知道web開發通常分前端和後端,前端開發人員用html/css/javascript等技術。後端開發人用php/java/python/ruby等各類語言。用戶輸入的數據是輸入到的前端頁面上,怎樣把這些數據傳遞的後臺的呢?經過http協議的get與post請求來實現先後端的數據傳遞。這也可認爲是接口測試,調用的登陸接口仍是查詢接口,傳參的是用戶密碼仍是搜索關鍵字。
外部接口測試:這個很典型的例子就是第三方登陸,好比你作的新系統免於新用戶從新註冊的麻煩會提供第三方登陸,那用戶在登陸的時候調用的就是第三方登陸的接口,由第三方驗證用戶名和密碼而且返回給當前系統。
對於服務器接口測試,咱們來看例子。
==================================
準備:
Python 下載地址: https://www.python.org/
Flask 微型web框架。flask安裝:> pip install flask
==================================
查看flsk是否安裝成功。
來寫一個例子hello.py:
from flask import Flask app = Flask(__name__) @app.route("/user/<name>") def user(name): return "<h1>hello %s !</h1>" %name if __name__ == '__main__': app.run(debug=True)
運行hello.py
經過瀏覽器訪問:http://127.0.0.1:5000/user/zhangsan
這是一個最簡單的get請求,咱們能夠把「zhangsan」改爲任意字符來時行測試。
對於web接口測試來講有哪些測試要點:
一、請求是否正確,默認請求成功是200,若是請求錯誤也能返回404、500等。
二、檢查返回數據的正確性與格式;json是一種很是建立的格式。
三、接口的安全性,通常web都不會暴露在網上任意被調用,須要作一些限制,好比鑑權或認證。
四、接口的性能,web接口一樣注重性能,這直接影響用戶的使用體驗。若是我搜索一個關鍵字半天結果都沒返回,果斷棄用。
===================
講這個話題我是比較冒險,對於接口測試我並無全面的理解和認識。歡迎留言說出你對接口測試的理解。