Postman接口測試教程【1】_安裝更新及api請求


一、   安裝與更新

1、安裝的方式

安裝:首先下載安裝PostMan,打開PostMan官方網站,根據需求下載 Mac/Windows/Linux版本的Post應用程序,native版本(具有更好的擴展性,推薦使用):https://www.getpostman.com/

2、native app更新

步驟:File--->Settings--->Update--->Minor fixes

二、  Postman特點

創建 + 測試:創建和發送任何的HTTP請求,請求可以保存到歷史中再次執行;
Organize(組織):使用Postman Collections為更有效的測試及集成工作流管理和組織APIs;
document(文檔):依據你創建的Clollections自動生成API文檔,並將其發布成規范的格式;
collarorate(同步):通過同步連接你的team和你的api,以及權限控制,API庫;

三、發送api請求(V2EX API 接口:https://www.v2ex.com/p/7v9TEc53

1、請求Request

HTTP請求的四個部分是URL,請求的method,headers,body;

(1)、URL

URL輸入字段存儲先前使用的URL,輸入URL時顯示自動完成下拉列表;
單擊 Params按鈕,可輸入URL添加鍵值對的參數,Postman將組合上述查詢字符串中的所有內容;
如果URL中已顯示參數,Postman會將自動分割成參數鍵值對;
注意:http://如果沒有指定協議, Postman將自動添加到URL的開頭;

 

注意:如果在輸入參數時,沒有自動decode到URL中,則可以選中參數右鍵后,選擇EncodeURIComponent(一般都會自動填充的),同樣也可以decode,將參數生成dictionary的形式(一般都會自動填充的);

 

(2)、Method:

使用控件下拉列表可以直接更改請求方法。請求Body編輯器區域將根據方法是否可以附加Body而改變; 

(3)、Headers

單擊Headers將顯示標題鍵值編輯器。您可以將任何字符串設置為頭名稱。自動完成下拉列表將在您輸入字段時提供常見HTTP標頭的建議。“Content-Type”標題的值也可以在自動完成的下拉列表中使用;

 

Header presets:可以在標題預設中將常用標題保存在一起;Presets--》選擇“Manager presets”從頭預設添加到您的請求預設右側下拉列表;

(4)、Body

form-data:①、網頁表單用來傳輸數據的默認格式,可以模擬填寫表單,並且提交表單;
           ②、可以上傳一個文件作為key的value提交(如上傳文件),但該文件不會作為歷史保存,只能在每次需要發送請求的時候,重新添加;
           ③、不支持使用自己的Content-Type上載多個文件;
x-www-urlencodedl:①、urlencode中的key-value會寫入URL,from-data模式的key-value不明顯寫入URL,而是直接提交;
                   ②、這個編碼格式不能上傳文件;
raw:①、原始請求可以包含任何內容,除了替換環境變量,PostMan不會觸及在原始編輯器中輸入的字符串;
     ②、原始編輯器可設置格式化類型(Text、JavaScript、JSON、HTML、XML);
     ③、選擇格式化類型后,點擊“Beautify”進行格式化;
binary:①、二進制數據允許發送無法在Postman中輸入的內容,可發送圖像,音頻、視頻、文本文件;您也可以發送文本文件;
        ②、文件不會作為歷史保存,只能在每次需要發送請求的時候,重新添加;
Pre-request Script:請求發送前,可進行一些腳本設置,如,設置或清除參數、變量;
Tests:定義發送Request之后,需要用腳本檢測的內容,也就是Test case的內容;

(5)、Cookies

可以使用Cookie管理器編輯與每個域相關聯的Cookie,可以在本機應用程序中管理Cookie;
見{Postman接口測試實例【1】_通過Cookies登錄博客園}

 

2、響應Response

(1)、Body

Body標簽:提供了幾個工具來幫助您快速查看Response的Body。Body可以在三個視圖中看到 - Pretty,Raw和Preview。
Pretty:①、格式化了JSON和XML,方便查看;
②、點擊里面的URL,postman會創建一個request;
③、對於導航大響應,單擊左側的向下三角形(▼)以折疊大部分響應
④、json、HTML、XML、Text等;

Raw:text,原始視圖只是一個響應體的大文本區域;可判斷您的響應是否縮小;

 

preview:預覽選項卡會在沙盒iframe中呈現響應。一些Web框架默認情況下返回HTML錯誤,預覽模式在這里特別有用。由於iframe沙盒限制,JavaScript和圖像在iframe中被禁用。可以顯示返回圖像;可以測試音頻文件,PDF,zip文件或API拋出的任何內容;

 

(2)、Headers

Headers :顯示為鍵值對。懸停在標題名稱上可以根據HTTP規范給出對標題的描述。如果您發送HEAD請求,Postman將默認顯示Headers 標簽。

(3)、Response狀態

Time:計算響應從服務器到達所花費的時間;
Size:響應大小;

 

 

五、斷言Writing Test

設置全局變量;

設置環境變量;

拿到並處理請求的響應;

定義測試檢查點和斷言;

1、Clear a global variable:

①、清除一個全局變量;

②、postman.clearGlobalVariable(“variable.key”);

2、Clear an environment variable:

①、清除一個環境變量;

②、postman.clearGlobalEnvironmentVariable(“variable.key”);

3、Response body:Contains string:

①、response包含內容;

②、tests[“Body matches string”]=responseBody.has(“string_you_want_to_search”)

4、Response body:Convert XML body to a JSON Object:

①、將xml格式的response轉換成json格式;

②、var jsonObject = xml2Json(responseBody);

5、Response body:Is equal to a string:

①、response等於預期內容;

②、tests[*Body is corret*] = resposeBody === *response_body_string*;

6、Response body:JSON value check:

①、json解析key的值進行校驗;

②、tests[*Args key contains argument passed as url parament*] = ‘test’ in responseJSON.args;

7、Response headers:Content-Type header check:

①、檢查response的header信息是否有被測字段;

②、tests[*Content-Type is present*] = postman.getResponseHeader(“Content-Type”);

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、Status code:Code name has string:

①、檢查code name是否包含內容;

②、tests[“Status code name has string”] = responseCode.name.has(“Created”);

13、Status code:Successful POST request:

①、成功的post請求;

②、tests[“Successful POST request”] = 201 ||responseCode.code ===202;

14、Use Tiny Validator for JSON data:

var schema = {

  "items": {

    "type": "boolean"

  }

};

var data1 = [true, false];

var data2 = [true, 123];

pm.test('Schema is valid', function() {

  pm.expect(tv4.validate(data1, schema)).to.be.true;

  pm.expect(tv4.validate(data2, schema)).to.be.true;

});

六、測試集合Collections

1、數據驅動的接口自動化測試

2、命令行中運行

1、命令行中運行:可以在無UI界面的服務器上運行;可以在ci持續集成系統上運行;

2、運行准備:導出collection;安裝nodejs和npm(國內cnpm);安裝newman;

3、生成測試報告:CLI reporter;JSON reporter;HTML reporter;JUnit reporter;

 

七、變量

 1、環境變量environment:比如可以將測試domain設置成環境變量;

2、全局變量Global variable:實現接口請求的參數依賴於其他接口的返回,比如可以將錯誤信息設置成全局變量;

3、Local本地變量:一般可以在sandbox中定義;

4、Data:測試數據中導入的變量,也就是所謂的參數化;

注意:當全局變量和環境變量沖突時,環境變量覆蓋全局變量;

八、   在test suite中運行test case

1、Environment :環境變量;

2、Iterations:重復運行次數;

3、Delay:間隔時間,用例與用例間的間隔時間;

4、Data:外部數據加載,即用例的參數化,可以與Iterations結合起來用,實現參數化,也就是數據驅動;

 

 

 

 

 

 

十、   Jekins+postman+newnam

1、Postman導出用例集合和導出環境變量;

2、newman運行:①、無環境變量:newman run D:\API.postman_collection.json;

             ②、有環境變量:newman run D:\API.postman_collection.json –environment D:\postnam_environment.json;

3、執行服務器上的Collection:newman –u https://www.getpostman.com/collections/cb208e7e64056f5294e5;

4、jenkins:①、構建;②、構建后發郵件;

十一、   Interceptor錄制

1、先在瀏覽器安裝Interceptor,並打開;

2、postman同時打開Interceptor;

3、刷新網頁,進行錄制請求;

 


免責聲明!

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



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