Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件。它提供功能強大的 Web API & HTTP 請求調試。html
一、環境變量和全局變量設置json
環境變量可使用在如下地方:api
- URL
- URL params
- Header values
- form-data/url-encoded values
- Raw body content
- Helper fields
先設置好變量名及數值後,接下來就能夠調用環境變量名,例如:數組
key對應的values,填寫{{address}},注意須要用雙花括號引用。安全
全局變量設置方法跟環境變量同樣,點擊"Globals" 後就會出現添加環境變量相似的頁面,進行變量和值的設置。併發
全局變量設置應用於整個(Collection)中的請求。app
GET 和POST 的區別:less
- GET 使用URL 或Cookie 傳參,而POST將數據放在Body 中。
- GET的URL 在長度上會有限制,而POST沒有。
- POST比GET相對安全,由於在地址欄不可見。
- 通常POST請求用來獲取數據,POST請求用來發送數據。
二、Get請求:函數
參考開發提供的接口設計文檔,提供傳參數據錄入。post
三、post請求:
如常見基本認證的登陸用的較多,用戶名和密碼也能夠經過設置的環境變量獲取。Postman支持不一樣的認證機制如: Basic、Digest、OAuth等),支持收到響應語法高亮(HTML\JSON\XML等)。
下面舉一個添加發佈會接口例子開展:
選擇form-data方式傳參發送。
1、Body:
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 只能夠上傳二進制數據,一般用來上傳文件,因爲沒有鍵值,因此, 一次只能上傳一個文件。
對於環境變量和全局變量的使用,除了上面所講的方法外,也能夠用Pre-requestScript 方法。
以login接口爲例,在"Pre-requestScript"中設置環境變量 "username", "password",在Body 中選取"form-data" 格式,輸入所需的key-value, value即爲變量{{username}}, {{password}}。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
經常使用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);
四、傳參場景(好比測試登陸接口須要不的帳號,密碼)
在接口測試過程當中,有的時候須要構建多組同類型數據測試(正常數據,異常數據),固然不必寫多條測試用例,可以使用CSV格式傳參
舉個例子,在測試用戶登陸接口的時候,須要用戶輸入相應的手機號和密碼
那麼,須要構建的測試數據有:手機號&密碼正確,手機號正確&密碼錯誤,手機號錯誤&密碼正確,手機號爲空&密碼不爲空,手機號正確&密碼爲空,手機&密碼均爲空。
如post請求:/api/login?phone={{phone}}&password={{password}}
a、可本地建立一個txt文檔,並編輯數據,數據的頭部必須參數名稱保持一致,也就是phone和password,數據以下:
b、而後選擇批量運行,即collection runner,操做以下:
數據預覽圖,以下:
c、最後點擊運行就OK,能夠在collection runner->Run Results查看運行結果。
五、壓力測試
壓力測試只能以文件夾的方式執行多個接口,不能單獨執行。
設置併發10次。執行後結果:
以上是postman基本操做總結。具體詳細可參考官方樣例:https://learning.getpostman.com/docs/postman/scripts/test_examples/