介面的分類:
1、系統與系統之間的呼叫,比如銀行會提供介面供電子商務**呼叫,或者說,支付寶會提供介面給**呼叫
2、上層服務對下層服務的呼叫,比如service層會呼叫dao層的介面,而應用層又會呼叫服務層提供的介面,一般會通過
3、服務之間的呼叫,比如註冊使用者時,會先呼叫使用者查詢的服務,檢視該使用者是否已經註冊。
而我們所要做的介面測試,先要了解是基於哪一種型別的介面測試,不同型別的介面測試方法可能是不一致的
http協議的介面測試,一般會用jmeter去測試,jmeter的好處是不用寫測試**,直接使用jmeter提供的http請求去測試,也可以使用httpclient去測試,好處是可以方便整合和自動化
以下**待分類進行改進,僅為參考
介面測試案例:
一).介面約定:
1、介面均採用http協議,post方法。
2、應用資料同步請求引數為transdata、sign。transdata為具體業務引數,資料格式為json格式;sign為transdata的簽名資料。具體呈現方式為transdata=***x&sign=yyyy,其中yyyy就是對***x的簽名資料,yyyy=rsa(md5(***x))。收到資料後需對簽名進行驗證。
3、a平台需要以雙方約定的金鑰對請求資料進行簽名。
二).引數列表:
引數名稱
引數含義
資料型別
是否可選
引數說明
opertype
資料操作型別
integer
必填資料操作型別:
0 – 新增
1 – 變更
2 – 刪除
應用編號
string
必填應用名稱
string
必填遊戲名稱
三).樣例:
請求資料(http包體資料):
成功應答資料(http包體資料):
失敗應答
,還有其它的code**:9994、9998等
實現**如下:
/**
* 使用 httpclient 需要以下 5 個步驟:
1. 建立 httpclient 的例項
2. 建立某種連線方法的例項,在這裡是 httppost,在httppost 的建構函式中傳入待連線的位址
3. 呼叫第一步中建立好的例項的 execute 方法來執行第二步中建立好的 method 例項
4. 讀 response
5. 釋放連線。無論執行方法是否成功,都必須釋放連線
*/@test
public static void sendsms() throws exception catch (clientprotocolexception e) catch (ioexception e)
// return conresult;
} /**
* 拼接transdata資料
* */
int opertype = 1;
} /**
* 用md5演算法對transdata進行加密
* */
public static string encrypt_sign() throws exception
-----------------------testng執行完成輸出的日誌
同步資料11
","opertype":0}
sign:3f58b89e2e1efd0f104cf0cc891bf6c 4d07cd4c898c0df22af83776e1d04bbc 36339c09d26c267d381ed4682fff9392
伺服器返回的狀態:200
passed: sendsms
可以使用firefox的乙個外掛程式:httprequester 模擬傳送請求(請求url、傳輸方法、引數)
備註:
比較蛋疼的問題就是httpclient4.3版本,會自動的儲存cookies,其它介面直接引用登陸的cookies,偶爾會出現失敗,如果輸出該cookies資訊,其它介面可以正常呼叫成功
1.2.
介面測試 HTTP協議
1.http 超文字傳輸協議,是用於www伺服器傳輸超文字到本地瀏覽器的傳輸協議。2.http協議包括哪些請求呢?get 請求指定的頁面資訊,並返回實體主體 post 向指定的資源提交資料進行處理請求,資料被包含在請求體中 head 類似get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 o...
介面測試 http協議簡介
在做介面測試的過程中,都會遇到一些http協議,什麼是http協議?http協議是hyper text transfer protocol 超文字傳輸協議 的縮寫,是用於從全球資訊網 www world wide web 伺服器傳輸超文字到本地瀏覽器的傳送協議。基於tcp的應用層協議,它不關心資料傳...
軟體測試 http協議1
1 使用filder 抓包工具,對請求url位址進行抓取 2 http 協議的定義 超文字傳輸協議 通常執行在tcp之上 3 http 協議的請求格式 3.2 主機位址或網域名稱 例如 192.168.x.xx 8080 位址 埠號 www.com 網域名稱 localhost8080 localh...