postman+newman+Jenkins之API全自動化測試(MAC)

文章已同步到https://github.com/abc-club/f...前端

更多前端資源盡在https://github.com/abc-club/f...node

求star!!!git

求star!!!github

求star!!!npm

名詞解釋

postman

主要用於模擬網絡請求包
快速建立請求
回放、管理請求
快速設置網絡代理 json

newman

newman是postman的命令行指令,容許咱們在命令行中運行postman collection.

jenkins

Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。

準備工做

安裝postman

沒有太多注意事項,直接[官網下載](https://www.getpostman.com/downloads/),而後安裝

安裝newman

必須選安裝node和npm api

$ npm install -g newman
$ newman -v

安裝jenkins

請參考 https://juejin.im/post/5d52e1...網絡

postman的使用與導出

下面以網易雲音樂登陸,而後用接口返回的userId獲取用戶信息爲例工具

  1. 建立test文件夾

  1. 定義環境,並設置變量

注意我這裏用的是網易雲音樂的接口,項目地址:https://github.com/Binaryify/...post

  1. 登陸

先增長兩個變量:phone和password

接下來即可以使用這幾個變量了


填好url,點擊send,以下圖,請求成功

cmd+s保存這個請求到test文件夾,取名爲login

  1. 獲取用戶信息

保存userId到變量

var data = JSON.parse(responseBody);

if (data.code === 200) {
  tests["login api"] = true;
  pm.environment.set("userId", data.profile.userId);
}
else {
  tests["login api"] = false;
}

點擊send後,咱們能夠看到userId被保存到變量中了

開始獲取用戶信息,這裏爲了演示更復雜點的功能,咱們在header里加個時間戳吧

timestamp = new Date();
postman.setGlobalVariable("timestamp",timestamp);

var data = JSON.parse(responseBody);

if (data.code === 200) {
  tests["userDetail api"] = true;
}
else {
  tests["userDetail api"] = false;
}



cmd+s保存這個請求到test文件夾,取名爲userDetail

  1. 執行test文件夾中全部的請求


以後看到以下界面,點擊run test

  1. 導出test文件和環境變量文件

導出請求文件

導出環境變量文件

jenkins配置

  1. 新建任務

  1. 填寫任務信息

  1. 配置

// 注意這裏的PATH要改爲你的npm的路徑,不然找不到newman命令

export PATH=/Users/isaacho/.tnvm/versions/alinode/v3.11.4/bin:$PATH

newman run  /Users/isaacho/Documents/test.postman_collection.json -e /Users/isaacho/Documents/test.postman_environment.json

  1. build

到這裏已經大功告成了!!!

可能遇到的問題

  • build失敗,提示找不到命令

那請注意你的PATH是否正確

  • build沒有權限

jenkins用戶沒有讀寫postman_collection.json和postman_environment.json的權限,能夠給jenkins修改文件夾的權限

參考資料

相關文章
相關標籤/搜索