接口測試基礎

接口測試:關心的只是數據,若是返回的是頁面,這種不是接口, 須要http協議和json格式, 能夠安裝jsonview查看json格式前端

  1. 程序接口:也能夠看做是程序模塊接口,具體到程序中通常就是提供了輸入輸出的類,方法或函數,對於程序接口的測試,通常須要使用與開發程序接口相同的編程語言, 經過傳入不一樣的參數, 來驗證程序接口的功能。不能跨語言
  2. 協議接口測試:通常反映系統經過不一樣的協議來提供的接口,例如http/soap協議等,這種類型接口對底層代碼作了封裝,經過協議的方式 對外提供調用,由於不涉及到程序層面,因此,不受編程語言的限制,咱們能夠經過其它編程語言或工具對其進行測試。

接口能夠是不一樣系統之間會須要接口(如天氣接口,如不想本身開發這種功能 ,能夠用氣象服務部門的天氣接口來實現),也多是下層服務對上層服務的接口(功能內部的調用,編程語言和database之間, 須要驅動,這個驅動是提供了給編程語言去操做數據庫的API,這個api就能夠看作是接口。
還能夠是服務與服務之間的調用,如抽獎接口,會去調用其它接口,如調用用戶接口,python

  1. 開發對應接口: (發佈會的接口)
    開發WEB接口通常會用到兩個部分:http協議和json

a. 前端和後端通常分分離,這樣後端開發能夠不用精通前端技術,如HTML/JavaScript/CSS, 只專一於數據的處理, 對外提供API 接口web

b. 前端的專業性愈來愈高,經過API接口獲取數據,從而專一於頁面的設計
c.先後端分離增長接口的應用範圍,開發的接口能夠應用到web頁面上,也能夠應用到移動app上。數據庫

  1. HTTP協議:
    a.支持客戶、服務器模式:簡單快速,
    b.靈活, 正在傳輸的類型同content-type 加以標記
    c.無鏈接
    d.無狀態

通常開發接口都用api作爲一級路徑, e.g.: 127.0.0.1:8000/api/....django

a. 建立添加發佈會接口:add_event/:
能夠加在urls.py裏:
path('api/add_event/', views.add_event)
也能夠在應用裏添加二級路徑: 在sign應用下建立一個python文件,命名爲urls.py
那麼在guest裏的urls.py裏就應該加上:
path('api', include('sign.urls'))
在sign下面的urls.py裏添加:
from diango.urls import path
from sign import views
urlpatterns = [
path('add_event/', views_api.add_event, name = 'add_event')]
而後再建立一個views, 如views_api.py,建立一個add_event 函數,但返回要用jsonResponse(就是字典格式)
def add_event(request):
if request.methon =='POST':
eid = request.POST.get('sid', '')
name =request.POST.get('name', '')
.....把發佈會的參數都加上
if eid=='' or name =='' or ....:
return JsonResponse({"status":10021, "message":"參數爲空"}) #這裏的status能夠隨便命名,如1111, 2222
else:
return JsonResponse({"status":10031, "messag":"請求方法錯誤"})編程

若是是post請求,那麼須要用接口測試工具: postman,能夠模擬http調用
postman裏請求方法選post,header能夠不要,body很重要,須要把參數都傳過來,而後點send。json

Get請求的話是在?後面加參數.後端

Jmeter:接口測試工具:api

  1. 添加線程組
  2. 能夠加斷言
    3.能夠添加配件裏:用戶定義變量, 用的時候加${url},當url變的時候,能夠只改變量便可,不用改每一條用例
  3. 啓動django項目的時候能夠用python manage.py runserver 127.0.0.1:8001

robotframework:接口測試工具: (python 的庫python -m pip install robotframework)
C:\python36\Scripts\pyrob.bat 運行
後綴:.robot
腳本分兩部分:settings and test case (能夠參照官網)
settings:至關於導包
如: Library SeleniumLibrary
Test case:
test_hello
log hello robot framework #(log至關於python裏的print)安全

python -m robot hello.robot(能夠解除警告)

接口的安全機制:
不可能隨便讓人使用,因此要有安全機制, 通常三種方法:

  1. 用戶認證
    POSTMAN裏就有authorization:能夠選 Basic auth,
  2. 數字簽名
    鑑權:須要加時間戳,這樣即便被黑客盜取,若是超過60秒服務器就會返回超時,這樣能夠防止被黑客使用接口。
    防止篡改
  3. 加密AES
相關文章
相關標籤/搜索