(1)必需引數覆蓋。對於介面的引數,介面文件一般都會說明哪些兒是必需的,哪兒是非必需的。對於必需的引數,一定要測試傳引數和不傳引數介面是否報錯?
(2)必需的引數各種情況覆蓋。傳非法的字元,特殊的字元,空值,超過邊界的引數是否報錯?錯誤資訊是否正確?
(3)非必需引數覆蓋。一般介面對於非必需引數都不會做非正常性傳值的判斷,所以要測試合法的引數值 ,介面返回的內容是否正確。如果有介面文件說明對非必需引數做了非正常的驗證的話,也要對其進行驗證。
(4)引數的組合覆蓋。有些兒引數需要相互配合著才起作用,如「offset」和「count」組合起來進行翻頁,這個時候要組合起來進行測試。
(5)業務邏輯相關的覆蓋。有些兒介面與業務邏輯關聯密切,單獨從介面角度測試,可能會遺漏掉一些兒因業務邏輯而產生的bug。所以如果和業務邏輯相關,也要考慮到業務邏輯相關的測試用例。
get有引數指令碼:
//驗證返回資料中包含關鍵字
tests[「驗證response中包含 小王子」] = responsebody.has(「小王子」);
//驗證返回的狀態碼是否為200
tests[「status code is 200」] = responsecode.code === 200;
//驗證start=0&count=20
//驗證start=0
var jsondata = json.parse(responsebody);
var b_count = jsondata.count; //定義變數b_count
tests[「start」] = jsondata.start === 20;
//驗證count=20
tests[「count」] = jsondata.count === 20;
//驗證返回的圖書列表長度為預設值
tests[「圖書列表長度為預設值20」] = jsondata.count === 20;
tests[「圖書列表長度為預設值為b_count」] = jsondata.count === b_count;
get的引數是個字串,post的引數要封裝到http請求頭里,是字典
測試指令碼:
清除乙個全域性變數
clear a global variable
對應指令碼:
postman.clearglobalvariable(「variable_key」);
引數:需要清除的變數的key
2.清除乙個環境變數
clear an environment variable
對應指令碼:
postman.clearenvironmentvariable(「variable_key」);
引數:需要清除的環境變數的key
3.response包含內容
response body:contains string
對應指令碼:
tests[「body matches string」] =responsebody.has(「string_you_want_to_search」);
引數:預期內容
4.將xml格式的response轉換成son格式
response body:convert xml body to a json object
對應指令碼:
var jsonobject = xml2json(responsebody);
引數:(預設不需要設定引數,為介面的response)需要轉換的xml
5.response等於預期內容
response body:is equal to a string
對應指令碼:
tests[「body is correct」] = responsebody === 「response_body_string」;
引數:預期response
6.json解析key的值進行校驗
response body:json value check
對應指令碼:
tests[「args key contains argument passed as url parameter」] = 『test』 in responsejson.args
引數:test替換被測的值,args替換被測的key
7.檢查response的header資訊是否有被測字段
response headers:content-type header check
對應指令碼:
tests[「content-type is present」] = postman.getresponseheader(「content-type」);
引數:預期header
8.響應時間判斷
response time is less than 200ms
對應指令碼:
tests[「response time is less than 200ms」] = responsetime < 200;
引數:響應時間
9.設定全域性變數
set an global variable
對應指令碼:
postman.setglobalvariable(「variable_key」, 「variable_value」);
引數:全域性變數的鍵值
10.設定環境變數
set an environment variable
對應指令碼:
postman.setenvironmentvariable(「variable_key」, 「variable_value」);
引數:環境變數的鍵值
11.判斷狀態碼
status code:code is 200
對應指令碼:
tests[「status code is 200」] = responsecode.code != 400;
引數:狀態碼
12.檢查code name 是否包含內容
status code:code name has string
對應指令碼:
tests[「status code name has string」] = responsecode.name.has(「created」);
引數:預期code name包含字串
13.成功的post請求
status code:successful post request
對應指令碼:
tests[「successful post request」] = responsecode.code === 201 || responsecode.code === 202;
14.微小驗證器
use tiny validator for json data
對應指令碼:
var schema =
};var data1 = [true, false];
var data2 = [true, 123];
console.log(tv4.error);
tests[「valid data1」] = tv4.validate(data1, schema);
tests[「valid data2」] = tv4.validate(data2, schema);
引數:可以修改items裡面的鍵值對來對應驗證json的引數
介面測試 用例篇,如何編寫app介面測試用例?
介面用例可以分為兩個部分,單一的介面引數驗證和多個關聯介面的驗證。包括我自己在內在做介面的初期,往往不自覺的把介面測試做成了業務測試,從而失去了介面測試的本質。這裡以乙個例子來說明 以我們公司的上傳分享這個功能作為介面測試,這裡的流程如下 1.請求上傳的key和位址 2.把資源的位址生成乙個post...
介面測試用例編寫規範
1.通過性驗證 先肯定要保證這個介面功能是好使的,也就是正常的通過性測試,按照介面文件上的引數,正常傳入,是否可以返回正確的結果。2.引數組合 現在有乙個操作商品的介面,有個字段type,傳1的時候代表修改商品,商品id 商品名稱 有乙個是必傳的,type傳2的時候是刪除商品,商品id是必傳的,這樣...
介面測試用例編寫規範
1.通過性驗證 先肯定要保證這個介面功能是好使的,也就是正常的通過性測試,按照介面文件上的引數,正常傳入,是否可以返回正確的結果。2.引數組合 現在有乙個操作商品的介面,有個字段type,傳1的時候代表修改商品,商品id 商品名稱 有乙個是必傳的,type傳2的時候是刪除商品,商品id是必傳的,這樣...