發送請求和查看響應
發送請求
????????Postman的界面分為左邊的側邊欄和右邊的請求構建器兩部分。請求構建器允許你可以快速的創建幾乎任何類型的請求。一個HTTP請求的四部分:URL、Method、Headers、Body,在Postman中都可以設置。
? ??????URL:
????????在你構建request請求的時候,首先要設置的就是URL。在URL輸入框中輸入你請求的鏈接,你可以單擊Params按鈕,在編輯器中輸入key-value格式的URL參數。
????????在URL地址欄中的輸入和編輯器中輸入的key-value參數,不會自動的編碼為 URL-encoded,選中要編碼的文本,右鍵選擇EncodeURIComponent ,手動編碼參數值。
????????你可以單獨的添加參數,Postman會自動的把他和URL整合到一起,如果你從其他的地方粘貼了URL過來,Postman也會自動的把 Params中的參數進行設置。
????????一些API端點使用路徑變量,你可以在Postman中設置,他們位于兩個 / 中,樣式如下:
????????如果你要設置他,單擊Params按鈕,你會發現key部分已被自動設置好了,根據需要填寫value部分就行。
????????Headers:
????????單擊Headers切換按鈕,你可以在key-value編輯器中設置任何字符串作為header的名稱。
? ??????受限的headers和cookies
????????不幸的是一些headers收到Chrome和XMLHttpRequest規范的限制,以下headers被屏蔽:
????????Accept-Charset
????????Accept-Encoding
????????Access-Control-Request-Headers
????????Access-Control-Request-Method
????????Connection
????????Content-Length
????????Cookie
????????Cookie 2
????????Content-Transfer-Encoding
????????Date
????????Expect
????????Host
????????Keep-Alive
????????Origin
????????Referer
????????TE
????????Trailer
????????Transfer-Encoding
????????Upgrade
????????User-Agent
????????Via
? ??????headers預設
????????你可以保存常用的headers在headr prest里面:
? ??????Method:
????????單擊HTTP的請求方法按鈕,在給出的下拉菜單中選擇使用的方法即可,對應的方法需要body的,body部分便被設置為可填寫。
? ??????body部分編輯:
????????當我們發送請求需要填寫body部分時,Postman幾乎可以讓我們發送任何類型的HTTP請求。body編輯器分為4個部分:
? ??????form-data
????????form-data是web表單默認的傳輸格式,編輯器允許你通過設置key-value形式的數據來模擬填充表單。你可以在最后的選項中選擇添加文件。
?????????這個編碼格式同樣可以通過設置key-value的方式作為URL的參數。
? ??????Raw
? ??????二進制
接口批量測試
創建測試用例集、子集
????????多個接口請求可以放在一起并管理起來。可以一個工程一個Collection,這樣方便查找及統一處理數據;
????????創建Collections;
????????在Collections里添加請求,在右側準備好接口請求的所有數據,并驗證后,點擊save按鈕;
????????保存好之后可以在這里看到;
創建測試用例
?????????創建接口測試用例,即新建http請求,選擇請求方式、寫好url、請求頭、請求體。
設置變量
????????postman的變量和Jmeter的參數化相似,即把若干處出現多次的數值用一個變量表示,達到一次修改、多處生效的效果,便于修改和管理。
????????變量可以動態選擇不同的測試環境;
?????????使用這些鍵值的時候只需要加上兩個花括號引用key,跑用例的時候在右上角下拉列表選擇需要的環境就好,如下:
添加響應處理
????????響應處理有點類似Jmeter里的檢查點,即通過檢查響應數據是否符合預期來判斷test是否通過。在Tests中添加檢查條件,postman提供了一些常用的檢查條件的代碼,直接添加或稍加修改即可。比如要測試返回結果是否含有某一字符串,就可以用到 Tests。以gold_add 接口為例,來編寫測試用例,分別測試返回的結果是否含有,如下所示:
????????響應成功返回PASS, 失敗返回FAIL。
????????常用tests如下:
????????檢查response body中是否包含某個string
????????tests["Body matches string"] = responseBody.has("string_you_want_to_search");
? ??????注意:“Body matches string” 需唯一。
????????檢測JSON中的某個值是否等于預期的值
????????vardata=JSON.parse(responseBody);
????????tests["Your test name"] =data.value === 100;
????????JSON.parse()方法,把json字符串轉化為對象。parse()會進行json格式的檢查是一個安全的函數。
????????如:檢查json中某個數組元素的個數(這里檢測programs的長度)
????????vardata=JSON.parse(responseBody);
????????tests["program's lenght"] =data.programs.length === 5;
????????檢查response body是否與某個string相等
????????轉換XML body為JSON對象
????????var jsonObject = xml2Json(responseBody);
????????tests["Body is correct"] = responseBody === "response_body_string";
????????測試response Headers中的某個元素是否存在(如:Content-Type)
????????tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
? ? ? ?或者:
????????tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
????????上面的方法,不區分大小寫。下面的方法,要區分大小寫。
????????驗證Status code的值
????????tests["Status code is 200"] = responseCode.code=== 200;
????????驗證Response time是否小于某個值
????????tests["Response time is less than 200ms"] = responseTime < 200;
????????name是否包含某個值
????????tests["Status code name has string"] = responseCode.name.has("Created");
????????POST 請求的狀態響應碼是否是某個值
????????tests["Successful POST request"] = responseCode.code=== 201 || responseCode.code=== 202;
????????很小的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);
? ??????設置環境變量,建立多個接口間的關聯
????????以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” 中定義。
批量執行測試用例
????????點擊測試用例集中的“run”,批量運行測試用例,彈出collection runner,點擊“Start Run”,批量運行測試用例。
????????運行后,彈出測試結果,顯示測試通過和失敗的個數、請求URL、請求頭、請求體信息,響應頭、響應體信息,狀態碼等,我們就可以查看測試用例的執行結果及具體信息
導入導出測試數據
?導出數據包
導出工作環境
?導入數據包
?導入工作環境
如有侵權請聯系本人刪除哦~~~