Postman官網上這樣介紹它:"Manage all of your organization's APIs in Postman, with the industry's most complete API development environment."看的出來Postman是功能強大的API測試的工具
Postman 提供功能強大的 Web API 和 HTTP 請求的調試,它可以發送任何類型的HTTP 請求 (GET, POST, PUT, DELETE...),而且能附帶任何數量的參數和 Headers。不只如此,它還提供測試數據和環境配置數據的導入導出,付費的 Post Cloud 用戶還可以建立本身的 Team Library 用來團隊協做式的測試,並可以將本身的測試收藏夾和用例數據分享給團隊。
less
Postman有2種安裝方式,一種是做爲Chrome的插件,另外一種是客戶端形式,建議使用客戶端安裝dom
1. Postman下載
官網下載地址:https://www.getpostman.com/downloads/函數
2. 安裝過程
默認安裝便可,安裝完成後,註冊登陸
工具
詳細功能能夠參考Postman官方 文檔,
打開軟件,就能夠看到Postman主界面,以下圖所示:
post
1. Collections:在Postman中,Collection相似文件夾,能夠把同一個項目的請求放在一個Collection裏方便管理和分享,Collection裏面也能夠再建文件夾。若是作API文檔的話,能夠每一個API對應一條請求,若是要把各類輸入都測到的話,就須要每條測試一條請求了。測試
2. 上面的黑字註冊是請求的名字,若是有Request description的話會顯示在這下面。下面的藍字是保存起來的請求結果,點擊能夠載入某次請求的參數和返回值。我會用這個功能給作客戶端的同事展現不一樣狀況下的各類返回值。保存請求的按鈕在15.url
3. 選擇HTTP Method的地方,各類常見的不常見的很是全。插件
4. 請求URL,兩層大括號表示這是一個環境變量,能夠在16的位置選擇當前的environment,環境變量就會被替換成該environment裏variable的值。3d
5. 點擊能夠設置URL參數的key和value
6. 點擊發送請求
7. 點擊保存請求到Collection,若是要另存爲的話,能夠點擊右邊的下箭頭
8. 設置鑑權參數,能夠用OAuth之類的
9. 自定義HTTP Header,有些由於Chrome緣由不能自定義的須要另外裝一個插件Interceptor,在16上面一行的衛星那裏
10. 設置Request body,13那裏顯示的就是body的內容
11. 在發起請求以前執行的腳本,例如request body裏的那兩個random變量,就是每次請求以前臨時生成的。
12. 在收到response以後執行的測試,測試的結果會顯示在17的位置
13. 有四種形式能夠選擇,form-data主要用於上傳文件。x-www-form-urlencoded是表單經常使用的格式。raw能夠用來上傳JSON數據
14. 返回數據的格式,Pretty能夠看到格式化後的JSON,Raw就是未經處理的數據,Preview能夠預覽HTML頁面
15. 點擊這裏把請求保存到2的位置
16. 設置environment variables和global variables,點擊右邊的x能夠快速查看當前的變量。
17. 測試執行的結果,一共幾個測試,經過幾個。
測試工具主要包括三部分,在發起請求以前運行的Pre-request,在收到應答以後運行的Test,和一次運行全部請求的Collection Runner
1. Pre-request
預請求腳本是與在發送請求以前執行的收集請求相關聯的代碼片斷。
Pre-request和Test用的語言都是JavaScript,Postman在一個沙盒裏執行代碼,提供給用戶的庫和函數能夠在這裏查看。而經常使用的功能均可以經過右邊的Code Snippets實現,點擊就能夠插入到代碼區域。
2. Test
使用Postman,您可使用JavaScript語言爲每一個請求編寫和運行測試.
測試例子
設置環境變量
pm.environment.set("variable_key", "variable_value");
獲取環境變量
pm.environment.get("variable_key");
獲取環境變量(其值是字符串化對象)
var array = JSON.parse(pm.environment.get("array")); var obj = JSON.parse(pm.environment.get("obj"));
清除環境變量
pm.environment.unset("variable_key");
設置全局變量
pm.globals.set("variable_key", "variable_value");
獲取全局變量
pm.globals.get("variable_key");
清除全局變量
pm.globals.unset("variable_key");
獲得一個變量
此函數在全局變量和活動環境中搜索變量。
pm.variables.get("variable_key");
檢查響應主體是否包含字符串
pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });
檢查響應主體是否等於字符串
pm.test("Body is correct", function () { pm.response.to.have.body("response_body_string"); });
檢查JSON值
pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); }); //var jsonData = JSON.parse(responseBody); //tests["list"] = jsonData["lists"][0] == "11";
內容類型存在
pm.test("Content-Type is present", function () { pm.response.to.have.header("Content-Type"); });
響應時間小於200毫秒
pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); });
代碼名稱包含一個字符串
pm.test("Status code name has string", function () { pm.response.to.have.status("Created"); });
成功的POST請求狀態代碼
pm.test("Successful POST request", function () { pm.expect(pm.response.code).to.be.oneOf([201,202]); });
將XML主體轉換爲JSON對象
var jsonObject = xml2Json(responseBody);
獲取HTML並取出其中的值
//獲取HTML const $ = cheerio.load(responseBody); //獲取input標籤中name屬性值爲SignValue的數據中屬性爲value的值 var signvalue=$('input[name=SignValue]').attr('value'); // //獲取textarea標籤中name值爲SignValue的數據中文本屬性text的值 var signvalue=$('textarea[name=SignValue]').text();
3. Collection Runner
當編寫了不少測試以後,就可使用Collection Runner來自動運行整個Collection了,入口就在主界面最上面一行的Runner。選好Collection、Environment,若是有須要還能夠載入JSON和CSV做爲數據源。點擊Start Run,就能夠看到結果了。
1. 使用變量
如今使用參數都是寫死的, 那麼若是想要測試帳號密碼參數使用其它值有沒有異常怎麼辦呢?
這裏就須要使用變量
引用變量的語法:{{變量名}}
Pre-request Script 和 Tests均可以設置變量,區別在於:Pre-request Script 中的腳本是在執行請求以前運行,而Tests 中的腳本則是在請求完成以後執行。
2. 測試數據集
在執行Collection Runner時能夠選擇CSV或json格式的文件做爲測試數據集
CSV文件格式:
JSON文件格式:
在執行Collection Runner時使用CSV/JSON文件
3. 按期任務
Postman 提供了一個 Monitors (監視器)功能,支持咱們提交一個測試任務,按照設置的定時器進行運行,如每小時測試一次,具體操做以下:
1. 接口執行順序
首先,說明一下,接下來講的接口都是默認屬於同一個集合 (Collections) 中的。
接口的執行順序其實就是按照這邊目錄中的順序(從上到下);因此有了這個默認的執行順序後,那麼咱們即可以把須要優先執行的接口放前面便可,好比把「登陸接口」放在第一個。
2. 自定義執行順序
固然,若是隻有默認的一個執行順序的話,一般無法知足咱們複雜的業務需求,因此 Postman 爲咱們提供了一個函數:postman.setNextRequest("填寫你要跳轉的接口名")
咱們能夠在接口的 Tests 功能區中執行跳轉代碼,如:
這裏須要注意幾點:
3. 解決依賴的思路
以上是Postman基礎功能,僅供參考。