天天看點

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

轉自:http://www.cnblogs.com/zuoshaowei/p/6192863.html

簡介

  Postman 使一款可以友善我們調用API的工具,通過Postman 與 Newman結合我們還可以批量運作API達到API自動化測試的目的。

Postman 安裝

  Window 系統需要先安裝Chrome浏覽器,然後在應用商店找到Postman插件,直接點選安裝便可:https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=cn

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

測試GET類型API以豆瓣搜尋圖書API為例

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

這個接口的method為get,postman預設為get,在url欄輸入被測接口

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

get請求

在接口文檔中,q與tag其中的一個是必填項,是以這裡需要配置參數,點選url右側的params,并輸入參數

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

點選send按鈕發送請求,在下面可以看到傳回的response,響應的狀态碼,與響應時間

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

response還可以以不同的方式檢視,并且還可以看到cookies,headers資訊

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

每次以不同的參數或者設定,在左側history都會幫我們記錄一個接口測試曆史,以便于下次重新調用

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

測試POST類型API

以Postman自帶的接口為例

選取請求的方法為POST,并輸入接口位址,因為post請求大多是json形式,是以可以打開Body選項,并選擇JSON(application/json)形式,輸入請求的json,同樣其餘的操作跟GET接口一樣。

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

post

變量的設定

編寫的API往往需要在多個環境下執行,而Postman 提供了兩種類型的變量:環境變量和全局變量,進而很好的解決了這個問題。

環境變量有效範圍僅僅在于你所選取的環境,全局變量對所有的環境都試用。

環境變量

api可能需要在撥通的環境中運作,是以api請求的伺服器位址不能寫死,希望是可以配置的,建立環境變量有多種方式。

  1. 手工預先建立環境變量
接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合
  1. 代碼自動建立環境變量

    自動建立環境變量可在兩種情況下建立,但是建立方式相同都是用了postman提供的方法:

    postman.setEnvironmentVariable("key", "value");

    1. 在某個請求發起之前建立:

      在Pre-request Script标簽裡面添加代碼:

    2. 在某個請求發起之後建立:在Tests标簽裡面添加如下
接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

全局變量

全部變量跟環境變量的建立類似,也可以通過手工預先建立或者通過代碼去建立。

  1. 通過手工預先建立
接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合
  1. 通過代碼建立

    2.1 在請求發起前建立

    在Pre-request Script标簽裡面添加代碼:

    2.2 在請求發起後建立

    在Tests标簽裡面添加如下:

    變量的引用

    在需要的地方加上{{變量名}}便可

随機數

PostMan 除了提供環境變量和全局變量外,還提供了三種随機數。

{{$guid}}

:添加一個V4風格GUID

{{$timestamp}}

:将目前的時間戳,精确到秒

{{$randomInt}}

:添加0和1000之間的随機整數

測試

  Postman可以在tests裡面,用自帶的腳本對接口進行測試,單擊tests标簽後可以看到右側有個snippets欄,裡面就是postman内置的測試腳本,輔助對接口進行測試。

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

選擇其中的一個腳本,修改其中的參數,再次點選send,這時response的tests出現了一個1/1,說明執行一個測試并且通過測試,綠色pass說明驗證通過

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

 紅色fail說明測試不通過,一個接口可以寫多個腳本進行多次測試

内置腳本說明:

使用Runner功能和外部資料

  Postman 工具自帶了Runner功能,用于批量運作腳本。在運作時還可以使用外部的CSV或者json檔案來指定資料。

  例如現在建立了如下兩個外部資料,第一個儲存為.json檔案,第二個儲存為.csv檔案。

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合
接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

建立如下GET請求API,并放于單獨一個檔案夾中管理。接口請求中{{host}}便是用來擷取上步建立的兩個檔案夾中的資料,{{}}中的名字對應json檔案的key值,對應csv檔案中的第一行值。

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

點選Runner按鈕,打開Runner界面:

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

在新打開的視窗中,選着你要剛建立的檔案夾名,選擇你要運作的環境,運作的次數和在Data File中選擇剛建立的外部json或者csv檔案,并選取檔案類型,點選Start Test,變開始逐條讀取外部檔案中的資料,進行運作。

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

Newman

官方幫助文檔位址:https://www.npmjs.com/package/newman

Newman 安裝

  嗯,它需要安裝,因為它不是音樂播放器!Newman是為Postman而生,專門用來運作Postman編寫好的腳本。Newman安裝步驟:

  1. 需要安裝nodejs,并配置好環境
  2. 打開控制台,運作:npm install -g newman
接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

Paste_Image.png

  1. 校驗是否安裝成功,運作:newman --version

Newman 執行腳本

  Newman在3版本後做了比較大的改動,但是運作指令越來越簡單如下:

run 後面跟上要執行的json檔案或者URL(json 和 URL 都由postman導出生成),再後面跟一些參數,例如環境變量,測試報告,接口請求逾時時間等等。最後給兩個完整的例子做參考:

例子1,通過newman 運作postman導出的test1.json檔案,并生成多種測試報告(json,junit的xml,html):

例子2,運作https://www.getpostman.com/collections/cb0cea0af1467c8008fb(postman生成的 )中的所有api,并使用env.json作為環境變量和globals.json作為全局變量,并使用外部data.csv作為外部資料,最後設定了接口請求逾時時間為5S 。

插入項目執行過程中的截圖:

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

Jenkins 結合

  平時做接口自動化,避免不了最後通過Jenkins做建構。既然Newman提供了控制台指令執行方式,那麼像通過Jenkins來建構也就容易多了。

步驟一:在Jenkins 機器上安裝Newman

步驟二:搭建Jenkins環境,并建立個自由風格的Job

步驟三:建構選擇Execute Windows batch command,并輸入newman 運作指令

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

步驟四:因為上面指令中建構會生成junit的xml報告,是以可以在建構後用Publish JUnit test result report 插件來生成測試報告。

接口自動化之Postman+Newman 簡介 變量的設定 測試 使用Runner功能和外部資料 Newman Jenkins 結合

繼續閱讀