介面測試用例編寫要點

2021-09-09 08:45:19 字數 3596 閱讀 9396

(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是必傳的,這樣...