postman 做接口測試一些操作


Postman 之前是作為Chrome 的一個插件,現在要下載應用才能使用。

以下是postman 的界面:

 

各個功能區的使用如下:

  • 快捷區: 快捷區提供常用的操作入口,包括運行收藏夾的一組測試數據,導入別人共享的收藏夾測試數據(Import from file, Import from folder, Import from link等),或新建請求、收藏夾、環境變量等。
  • 側邊欄: 包括搜索欄, Request 請求的歷史記錄和收藏夾管理。
  • 功能區: Request 請求設置,查看 Response 響應結果和測試結果,可以將請求保存到收藏夾。
  • 設置區:設置和管理環境變量和全局變量。

一、環境變量和全局變量的設置:

a. 環境變量的設置方法如下圖。點擊設置一個環境變量,名為"user_pwd", 里面設置username 和passwd的值,然后在請求中應用這個環境變量"user_pwd"即可。

環境變量可以使用在以下地方

  • URL
  • URL params
  • Header values
  • form-data/url-encoded values
  • Raw body content
  • Helper fields

注意:在你要使用的變量名上附上雙花括號,一個請求只能應用一個環境變量。

 

下圖"username" 和"passwd" 的value值應用了環境變量"user_pwd",所以在body 中,只需在key對應的value那寫上變量{{username}}, {{passwd}}

注意:一個項目需要測試好幾個環境的情況,就可以對不同的環境設置一個環境變量,比如對“test environment”設置一個環境變量,對“stage environment”設置一個環境變量,對“production 環境”設置一個環境變量。

 

 b. 全局變量的設置方法類似,如下圖,點擊"Globals" 后就會出現添加環境變量類似的頁面,進行變量和值的設置。

注意:全局變量設置就應用於整個收藏夾(Collection)中的請求,不用像環境變量一樣需要選取。

二、用Postman做接口測試的實例

**接口測試中常用的請求為GET 和POST,以下均以這兩種請求為例。

GET 和POST 的區別:

  • GET 使用URL 或Cookie 傳參,而POST將數據放在Body 中。
  • GET的URL 在長度上會有限制,而POST沒有。
  • POST比GET相對安全,因為在地址欄不可見。
  • 一般POST請求用來獲取數據,POST請求用來發送數據。

**對於上面的區別,其實第一點POST也可以將數據放在URL里,GET請求其實也沒有長度限制,POST請求看起來是隱式的,但是可以通過抓包拿到參數。

1. GET 請求:

平常我們拿一個url 訪問頁面,就是所謂的get 請求。

例1.(stu_info 接口:獲取名字為xx 的信息)

將請求方式設為GET, 同時輸入完整的url, 跟訪問瀏覽器一樣, 或者輸入接口url, 點擊"Params" 輸入需要的key 以及value, 點擊"Send", 即可在"Response" 中查看返回的結果。

注意: get 請求的內容不能放在body里,並且長度有限制。由於對domain 設置了全局變量,所以,url 中用變量{{domain}} 做了替換,以下的請求中都應用了這個全局變量。

 

例2. (all_stu 接口:獲取所有用戶的信息)

除了例1這種GET請求,還有些接口發送GET請求時除了發送key-value, 還要將Headers的信息也一起發送過去,這樣就可以借助Postman來實現。以下圖為例,需要在Headers 里添加"Referer"信息,以獲取所有用戶的信息。

 2. POST請求:

POST 請求不能像GET一樣直接在瀏覽器輸入就可以請求,需要借助工具來完成。

 使用方法:選擇請求方式為post,輸入請求的url,以及輸入必要的"Authorization" , "header" 和"Body" 數據。post請求可以發送key-value, json格式,file等。

對於"Authorization"的使用,遇到比較多的是Type 為"Basic Auth", 然后設置對應的Username 和Password

這里的username, password的值可以通過設置環境變量的方式取得。

a. 用Postman 發送key-value 的請求:

以login 接口為例,在Body 中選取"form-data" 格式,輸入所需的key-value, 選取對應的環境變量。

b. 用Postman 發送json格式的請求:

以add user 接口為例,在Body 中選取"raw" 格式,根據接口文檔輸入json 數據, 有需要應用環境變量的選取環境變量。

c. 用Postman 發送文件的請求:

以file upload 接口為例,在Body 中選取"form-data" 格式,在key 里輸入"file",在右邊的下拉里選取類型為"File",點擊"Choose Files" 就可以上傳本地文件了。

 三、Pre-requestScript 的使用

 對於環境變量和全局變量的使用,除了上面所講的方法外,也可以用Pre-requestScript 方法。

以login接口為例,在"Pre-requestScript"中設置環境變量 "username", "passwd",在Body 中選取"form-data" 格式,輸入所需的key-value, value即為變量{{username}}, {{passwd}}

postman. setEnvironmentVariable (“key”, “value”);

postman. setGlobalVariable (“key”, “value”);

getEnvironmentVariable ("key");//獲取key的環境變量

getGlobalVariable(“key”);//獲取key的全局變量

 四、Tests 的使用

1. Tests 作為測試用例的應用

Tests 主要用來設計用例,比如要測試返回結果是否含有某一字符串,就可以用到 Tests。以gold_add 接口為例,來編寫測試用例,分別測試返回的結果是否含有,如下所示:

響應成功返回PASS, 失敗返回FAIL。

 

 常用tests如下:

1.檢查response body中是否包含某個string
tests["Body matches string"] = responseBody.has("string_you_want_to_search");

注意:"Body matches string" 需唯一。

2.檢測JSON中的某個值是否等於預期的值

var data = JSON.parse(responseBody);
tests["Your test name"] = data.value === 100;

JSON.parse()方法,把json字符串轉化為對象。parse()會進行json格式的檢查是一個安全的函數。 

如:檢查json中某個數組元素的個數(這里檢測programs的長度)

var data = JSON.parse(responseBody);
tests["program's lenght"] = data.programs.length === 5;

3.檢查response body是否與某個string相等
4.轉換XML body為JSON對象
var jsonObject = xml2Json(responseBody);

tests["Body is correct"] = responseBody === "response_body_string";

5.測試response Headers中的某個元素是否存在(如:Content-Type)

tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); 
//getResponseHeader()方法會返回header的值,如果該值存在

或者: 

tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
上面的方法,不區分大小寫。下面的方法,要區分大小寫。 

6.驗證Status code的值

tests["Status code is 200"] = responseCode.code === 200;

7.驗證Response time是否小於某個值
tests["Response time is less than 200ms"] = responseTime < 200;

8.name是否包含某個值
tests["Status code name has string"] = responseCode.name.has("Created");

9.POST 請求的狀態響應碼是否是某個值
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

10.很小的JSON數據驗證器

var schema = {
"items": {
"type": "boolean"
}
};
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);

2. 設置環境變量,建立多個接口間的關聯

以gold_add 接口為例,由於該接口有權限驗證,需要admin用戶才可以做操作,需要添加cookie,所以需要將login 接口關聯起來使用。

在login 請求中, 在"Tests"中加入

var jsonData =JSON.parse(responseBody);//獲取body中返回的所有參數
postman.setEnvironmentVariable("sign",jsonData.login_info.sign);//把返回參數中的sign設置為環境變量

這樣sign 就可以作為環境變量,應用於gold_add接口。

在gold_add 接口中,{{username}} 由於在環境變量"user_pwd" 中已經設置,可以直接輸入變量名, {{sign}} 動態取得login接口中 Response 的 "sign" 值,{{sign}}已在上面login 請求的"Tests" 中定義。

 

以上就是postman接口測試基本使用方法總結。

出自:https://www.cnblogs.com/nancyzhu/p/8029994.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM