Postman基本使用——get、post請求、斷言、環境變量


 
Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件。
它提供功能強大的 Web API & HTTP 請求調試。 它能夠發送任何類型的HTTP 請求 (GET,HEAD, POST, PUT..), 附帶任何數量的參數+ headers。
 
Postman功能:
  主要用於模擬網絡請求包
  快速創建請求
  回放、管理請求
  快速設置網絡代理
 
目錄
 

get請求

頁面訪問請求(get方法),將接口地址填入地址框中,點擊Params,設置參數值,點擊send,如下圖所示:

post請求

頁面訪問請求(post方法),將接口地址填入地址框中,點擊Body后, 選擇x-www-form-urlencoded,設置參數值,點擊send,如下圖所示:

form-data、x-www-form-urlencoded、raw、binary的區別

1. form-data
  就是http請求中的multipart/form-data,它會將表單的數據處理為一條消息,以標簽為單元,用分隔符分開。既可以上傳鍵值對,也可以上傳文件。當上傳的字段是文件時,會有Content-Type來說明文件類型;content-disposition,用來說明字段的一些信息;由於有boundary隔離,所以multipart/form-data既可以上傳文件,也可以上傳鍵值對,它采用了鍵值對的方式,所以可以上傳多個文件。
2.x-www-form-urlencoded
  就是application/x-www-from-urlencoded,會將表單內的數據轉換為鍵值對
3.raw
  可以上傳任意格式的文本, 可以上傳text、 json、 xml、 html等
4.binary
  相當於Content-Type:application/octet-stream,從字面意思得知,只可以上傳二進制數據,通常用來上傳文件,由於沒有鍵值,所以, 一次只能上傳一個文件。

multipart/form-data與x-www-form-urlencoded區別

multipart/form-data: 既可以上傳文件等二進制數據,也可以上傳表單鍵值對,只是最后會轉化為一條信息。
x-www-form-urlencoded: 只能上傳鍵值對, 並且鍵值對都是間隔分開的。

get方法和post方法的區別

1.get是從服務器上獲取數據, post是向服務器傳送數據。
2.get安全性非常低, post安全性較高。 但是執行效率卻比post方法好。
3.post的安全性要比get的安全性高。
注意: 這里所說的安全性和上面get提到的“安全”不是同個概念。 上面“安全”的含義僅僅是不作數據修改, 而這里安全的含義是真正的Security的含義, 比如: 通過get提交數 據, 用戶名和密碼將明文出現在URL上
(1)登錄頁面有可能被瀏覽器緩存
(2)其他人查看瀏覽器的歷史紀錄, 那么別人就可以拿到你的賬號和密碼 了, 除此之外, 使用get提交數據還可能會造成Cross-site request forgery攻擊。
總結:get是向服務器發索取數據的一種請求, 而post是向服務器提交數據的一種請求, 在FORM(表單) 中, Method默認為"get", 實質上, get和post只是發送機制不同, 並不是一個取一個發!

header請求頭

設置header, 一般指請求頭,這是請求前需要設置的東西, 請求方式get、post、 delete
請求的地址httpURL,如果是get和delete請求需要在請求URL的后面拼接請求參數? key = value, 點擊params的時候可以添加
Headers就是設置請求的頭, 請求的方式之類的,但是如果是post請求, 需要在body體中設置請求的參數, 一般是以json的格式發送請求的參數體系, 設置好參數之后, 點擊發送按鈕send,會得到返回結果,body中的內容就是請求網絡訪問返回的結果, 根據此結果就可以因此作出判斷

查看響應結果

Body 有三種視圖: Prettry, Raw, 和 Preview。
  ①Prettry 模式將 JSON 或 XML 響應格式化, 使他們更容易被查看。 Pretty 模式中的鏈接被高亮顯示, 點擊他們可以在 Postman 中加載一個使用該 URL 的 GET 請求。
  ②Raw 視圖只是一個顯示了響應的 body 的大文本區域, 它可以幫助你判斷你的響應是不是被壓縮的。
  ③Preview 選項卡在內聯沙箱框架中呈現響應。 一些 Web 框架默認返回 HTML 錯誤,這時, Preview 模式就非常有用了。 由於內聯沙箱框架的限制, JavaScript 和圖像在內聯框架中是被禁用的。 如果你的 API 端點返回一個圖像, Postman 會自動檢測並呈現它。 對於二進制響應類型, 你應該選擇“Send and download” , 這將讓你保存響應到你的硬盤上, 之后你就可以用適當的查看器來查看它。 這樣你就可以靈活地測試音頻、 PDF、 zip 文件或 API 給你的任何文件。
 
Headers:
  在Header 選項卡中,headers 顯示為key/value 對。光標懸停 header 名時則會顯示根據 HTTP 規范對 header 的描述。 如果你正在發送一個 HEAD 請求, Postman 會默認顯示Headers 選項卡。
 
Cookies
  Postman v0.8.x以上版本 可以顯示瀏覽器cookies, 就像它與瀏覽器共享相同的環境一樣。對於本地應用, 你需要啟用 Interceptor, 然后你就可以在響應部分的 Cookies 選項卡中查看響應的 cookies。
 
Tests
  Tests為執行斷言后的測試結果

斷言Tests

  postman斷言是JavaScript語言編寫的,在postman客戶端的test區域編寫即可,斷言會在請求返回之后,運行,並根據斷言的pass\fail情況體現在最終測試結果中。
具體斷言如下所示:
1.設置環境變量--Setting an environment variable
  postman.setEnvironmentVariable("key", "value");
2.設置全局變量--Set a global variable
  postman.setGlobalVariable("key", "value");
3.檢查響應中包含string--Check if response body contains a string
  tests["Body matches string"] = responseBody.has("string_you_want_to_search");
4.轉化XML格式的響應成JSON對象---Convert XML body to a JSON object
  var jsonObject = xml2Json(responseBody);
5.檢查響應body中等於指定string--Check if response body is equal to a string
  tests["Body is correct"] = responseBody === "response_body_string";
6.檢查JSON某字段值--Check for a JSON value
  var data = JSON.parse(responseBody);
  tests["Your test name"] = data.value === 100;
7.檢查Content-Type是否包含在header返回(大小寫不敏感) --Content-Type is
  present (Case-insensitive checking)
  tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
  //Note: the getResponseHeader() method returns the header value, if it exists.
8.檢查Content-Type是否包含在header返回(大小寫敏感) --Content-Type is
  present (Case-sensitive)
  tests["Content-Type is present"] = responseHeaders.hasOwnProperty("ContentType");
9.檢查請求耗時時間小於200ms--Response time is less than 200ms
  tests["Response time is less than 200ms"] = responseTime < 200;
10.檢查Status code為200--Status code is 200
  tests["Status code is 200"] = responseCode.code === 200;
11.檢查Code name包含指定string--Code name contains a string
  tests["Status code name has string"] = responseCode.name.has("Created");
12.檢查成功post的請求status code--Succesful POST request status code
  tests["Successful POST request"] = responseCode.code === 201 ||responseCode.code === 202;

管理請求

①設置請求方式為Get, 地址為http://www.baidu.com/s?wd=nba點擊右側保存按鈕;
②在彈出的保存請求中設置保存的內容。 Collections:百度, Request name:搜索nba。 點擊“Add to Collections” 保存;
③此請求會被保存到Collections頁卡內, 后期在使用時, 僅需要在此Collections中找到對應的請求名, 即可直接使用請求。

模塊管理 folder

多請求維護-模塊管理Folder:
  點擊“百度” 后面的"...", 選擇"Add Folder"在彈出框中, Folder name輸入“搜索” , 保存。 拖動請求“搜索nba” 至“百度” 文件夾中Collections(系統:百度)-Folder(搜索)-Request(請求: 搜索nba),三級的關系已經建立。 可用此方法來做對應的擴展

環境變量

postman可直接通過切換環境來實現多個環境中的參數切換。 常用功能: 環境地址切換、 全局變量使用。
環境請求地址切換:
1、 在之前的“禪道”下新增“我的地盤”文件夾
2、 點擊右上角設置圖標, 選擇“Manage Environments--Add” ,在頁面中設置環境信息:Environment(開發)->key(url)->Value(http://127.0.0.1:81),選擇Add
3、 再添加測試環境: Environment(測試)->key(url)->Value(http://127.0.0.1:81),選擇Add
4、 在“我的地盤” 文件夾內, 添加請求:
http://127.0.0.1:81/zentao/user-login.html
把其中的“http://127.0.0.1:81”修改 為"{{url}}"
5、 執行不同的測試:
選擇Environment中的“測試” , 點擊“send” 發送請求。 即執行測試環境的請求
選擇Environment中的“開發” , 點擊“send” 發送請求。 即執行開發環境的請求
 

換一個環境就會操作不成功:

 

全局變量使用:
選擇“Manage Environments--Globals”在頁面中輸入key(web):value(WeatherWebService), 點擊Save修改請求地址內"WeatherWebService"為"{{web}}"
在測試“開發” 、 “測試” 環境時, 僅需要切換環境即可完成對此web的不同環境的測試。 web可隨意替換成別的名字

導入導出應用

Collection
Share鏈接:點擊Collection的'...'內的Share
Share文件:點擊Collection的"Export", 會下載一個名為"*.json.postman_collection".(此文件可直接導入到Postman中)
導出數據包:
 
導入數據包:

導出、入工作環境:


免責聲明!

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



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