postman安裝和介面測試_postman

來源:互聯網
上載者:User
1. 安裝

兩種安裝方式,我熱衷於以chrome外掛程式形式安裝 Chrome外掛程式 Mac App 2. 發送請求

Postman最基礎的功能就是發送http請求,支援GET/PUT/POST/DELETE,還有很多我不認識的http方法。

通過填寫URL、header、body等就可以發送一個請求,這對於我們平時做一些簡單的測試是夠用的。

如果你的應用需要用到登入驗證,可以通過填寫Authorization以滿足你的需求。

另外也可以使用Chrome瀏覽器已經登入的cookie,同步瀏覽器的cookie需要安裝另一個外掛程式 Interceptor  (攔截機)。它可以在你發送請求時幫你將已經存在於瀏覽器的資料隨header請求,另外它可以將瀏覽器的請求寫到postman的曆史中(需要開啟“Request Capture”

)。 3. 集合

每次配置完一個請求都可以儲存到一個集合中,如此一來,下次測試可以直接從集合中找到你要執行的測試。

集合不單單只有分類和儲存功能,Postman支援一鍵運行整個集合內的測試。

我們可以把一個請求當做一個Test Case, 那麼集合就是一個Test Suite。

每個集合都對應一個URL,可以通過 Share 按鈕獲得你的集合URL,這個URL可以用於分享給你的隊友,或者用於 Newman  執行。

Newman  是Postman的一個命令列工具,可以讓API測試加入到你的持續整合任務上。 4. 環境變數

當做API測試時,你可能經常需要切換不同的設定。比如,開發環境的API設定、測試環境和產品環境的API設定,你可能需要在不同的測試環境下使用不同的配置。為此Postman提供了環境變數,這樣你就可以通過修改環境變數,而不需修改請求了。

你可以通過右上方的下拉式功能表選擇環境,可以通過點擊右側的小眼睛來查看當前環境變數。 5. API測試

Postman測試沙箱  是一個JavaScript執行環境,可以通過JS指令碼來編寫pre-requist和測試指令碼。pre-requist可以用來修改一些預設參數。

Postman沙箱整合了幾個工具庫,比如 lodash 、 SugarJs 、 tv4 ,還有一些內建函數如xml2JSON..

tv4用於驗證JSON資料,通過編寫JSON Schema來驗證,JSON Schema的文法請參照這裡

測試文法:

// description 為該測試的描述// value 只要Boolean(value)不等於false,這個測試就是PASStests[description] = value// exampletests["Status code is 200"] = responseCode.code === 200;

我們以 github status 的介面為例:

url: https://status.github.com/api/status.json

tests["Status code is 200"] = responseCode.code === 200;// validate json schemavar schema = {  properties: {      status: {type: 'string'},      last_updated: {type: 'string'}  }};tests["Valid data schema"] = tv4.validate(responseBody, schema);// check statusvar jsonData = JSON.parse(responseBody);tests["Github status is good"] = jsonData.status === 'good';

運行結果: 樣本

受 http://httpbin.org/ 啟發,Postman也提供了一套入門的API http://dump.getpostman.com/ ,接下來我們將利用這套API做完整的測試。 1. 建立一個環境變數

點擊 Manage Environments ,然後點擊 Add

添加一個URL變數,我們會在後續使用 2. 請求一個新使用者

我們需要通過發送一個POST請求到{{url}}/blog/users/來建立一個使用者,並需要附加下面的參數到請求body中:

註:記得將環境變數切換到dump.getpostman.com,這樣我們才能擷取到{{url}}變數

{  "username": "abhinav“,  "password": "abc"}

這個介面現在好像不支援建立使用者了,我們假設已經建立成功了,因為這不影響我們後續操作 3. 擷取使用者的Token

Token用於授予終端請求和存取權限的。我們可以通過POST使用者名稱和密碼請求 {{url}}/blog/users/tokens/ 來擷取使用者的Token,這個Token將用於其他請求中。

{  "username": "abhinav“,  "password": "abc"}

4. 格式化JSON

我們需要從上面的請求結果中擷取到使用者Token和使用者ID,並將這兩個值儲存到環境變數中,以供後續使用。將下面這段代碼添加到測試編輯器中:

var data = JSON.parse(responseBody);if (data.token) {  tests["Body has token"] = true;  postman.setEnvironmentVariable("user_id", data.user_id);  postman.setEnvironmentVariable("token", data.token);}else {  tests["Body has token"] = false;}

5. 建立一篇文章

如果上面的測試是在主視窗或者集合運行器中執行,那麼 user_id 和 token 會自動地被添加到環境變數中。

為了建立一篇文章,我們需要發送一個POST請求到 {{url}}/blog/posts ,並將 user_id 和 token 添加在URL參數中。POST的請求Body如下:

{  "post": "This is a new post"}

6. 檢查返回資料

如果上述的請求成功的話將返回一個帶有 post_id 的JSON。我們將在這裡驗證是否建立文章成功,並且將文章ID儲存到環境變數。將下面這段代碼添加到測試編輯器中:

var data = JSON.parse(responseBody); if (data.post_id) {  tests["post_id found"] = true;   postman.setEnvironmentVariable("post_id", data.post_id);}else {  tests["post_id found"] = false;}

7. 擷取一篇文章並驗證JSON

我們將通過上面返回的文章ID來擷取我們建立的文章。這裡我們將用到Postman內建的 tv4 JSON 驗證器來檢查伺服器響應的JSON。

建立一個GET請求到 {{url}}/blog/posts/{{post_id}},並將下面這段代碼添加到測試編輯器中:

var schema = {  "type": "object",  "properties": {    "content": "string",    "created_at": "integer",    "id": "integer"  },  "required": ["content", "created_at", "id"]}; var data = JSON.parse(responseBody); var result = tv4.validateResult(data, schema); tests["Valid schema"] = result.valid; 

8. 一鍵運行與分享集合

我們將上述每一個測試儲存到PostmanTest的集合中,這樣我們就可以在任何時候開啟和運行你想要的測試,並且可以一鍵運行所有,或者將集合分享給你的小夥伴,也可以擷取嵌入式代碼(如下面的按鈕)。

本文的所有測試案例都在 這裡

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.