1. 程式人生 > >Jenkins+Postman+Newma+Xmysql之API全自動化測試

Jenkins+Postman+Newma+Xmysql之API全自動化測試

第一章 前期準備:各種安裝配置介紹

①Postman安裝及使用

②Newman 安裝及使用

③Xmysql 安裝及使用

④Jenkins安裝及配置

 

1、postman 安裝及使用

1.1、postman安裝

1.2、postman使用

1.2.1、postman基礎功能

1.2.2、常用斷言

①驗證本次請求的狀態碼,即驗證本次請求是否能調通,或預設響應狀態
tests["Status code is 200"] = responseCode.code === 200;
tests["Status code is 201"] = responseCode.code === 201;
②驗證返回相應中的欄位值
var jsonData = JSON.parse(responseBody);
tests["Check respose value err_code"] = jsonData.err_code === 0;
③響應時間小於200ms
tests[‘Response time is less than 200ms‘] = responseTime < 200;
④response包含內容
tests["Body matches string"] =responseBody.has("string_you_want_to_search");
⑤response等於預期內容
tests["Body is correct"] = responseBody === "response_body_string";

2、newman的安裝及使用

2.1、newman的安裝

newman是基於node.js測試框架,安裝newman需要先安裝node.js

2.1.1、安裝node.js

下載對應你係統的Node.js版本:https://nodejs.org/en/download/

雙擊安裝包,一路next直到finish,安裝完成後,驗證安裝:

 

NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS程式碼部署上的很多問題,常見的使用場景有以下幾種:

  • 允許使用者從NPM伺服器下載別人編寫的第三方包到本地使用。
  • 允許使用者從NPM伺服器下載並安裝別人編寫的命令列程式到本地使用。
  • 允許使用者將自己編寫的包或命令列程式上傳到NPM伺服器供別人使用。

2.1.2、使用npm安裝newman

npm install -g newman

2.2、newman的使用

newman run C:\Users\Administrator\Desktop\postman_test\AutoRyline_api.postman_collection.json --reporters cli,html,json,junit --reporter-json-export C:\Users\Administrator\Desktop\postman_test\jsonOut.json --reporter-junit-export C:\Users\Administrator\Desktop\postman_test\xmlOut.xml --reporter-html-export C:\Users\Administrator\Desktop\postman_test\htmlOut.html

3、xmysql安裝及使用

3.1、xmysql安裝

npm安裝:npm install -g xmysql

輸入命令:xmysql,即可看到用法

3.2、xmysql的使用

3.2.1、啟動xmysql,連線資料庫,命令:xmysql -h host_name -u user_name -p user_password -d database_name

3.2.2、通過postman連線使用:

啟動服務之後,即可通過http://localhost:3000/api/ 訪問 xmysql 自動生成的 Rest API

3.2.3、通過xmysql生成的API對資料庫進行增刪改查:

查詢某表資料,get請求:http://localhost:3000/api/table_name:

插入資料,post請求:http://localhost:3000/api/table_name:

 更多用法https://blog.csdn.net/Al_assad/article/details/81370196

4、Jenkins的安裝及使用

4.1、Jenkins安裝

官網下載:https://jenkins.io/download/,然後一路next,安裝提示即可完成操作。開啟http://localhost:8080即可訪問。

4.2、Jenkins配置

郵件設定,可參考https://blog.csdn.net/hlybest24/article/details/60753538

 

 

第二章:介面自動化

1、Jenkins+postman+newmanAPI全自動化測試

 1.1、匯出postman測試用例:

postman匯出整個collection內的介面(json格式),我是匯出放到C:\Users\Administrator\Desktop\postman_test

 1.2、專案配置:

1.2.1、新建構建xmysql專案的job(新增批處理命令:xmysql服務啟動命令)
1.2.2、新建構建Fengxia_AutoRylineApi專案的job(新增批處理命令,再新增構建後傳送郵件:呼叫newman執行測試用例)
1.2.3、新建構建MultiJob Project AutoRyline_API專案的job
  ①構建觸發器→觸發遠端構建、定時構建
  ②構建環境→設定任務超時 超過限定時間停止任務
  ③Jenkins多個jobs設定(把前面兩個專案關聯起來,先執行xmysql,後執行Fengxia_AutoRylineApi)

1.3、構建

點選立即構建MultiJob Project AutoRyline_API,構建完成後會收到測試報告的郵件

 2、Jenkins執行的批處理命令一覽

2.1、newman批處理命令:

C:\Users\Administrator\AppData\Roaming\npm\newman run C:\Users\Administrator\Desktop\postman_test\AutoRyline_api.postman_collection.json --reporters cli,html,json,junit --reporter-json-export C:\Users\Administrator\Desktop\postman_test\jsonOut.json --reporter-junit-export C:\Users\Administrator\Desktop\postman_test\xmlOut.xml --reporter-html-export C:\Users\Administrator\Desktop\postman_test\htmlOut.html

2.2、xmysql批處理命令:

C:\Users\Administrator\AppData\Roaming\npm\xmysql -h 172.*.*.142 -u user -p ***cmCx72sSXZ -d atm

2.3、newman、xmysql具體路徑查詢方法:

3、郵件傳送配置(附帶報告)

第三章:後續-亂碼解決、遠端觸發構建、多job、定時任務

 1、Jenkins解決控制檯輸出亂碼

需要更改三個地方

1.1、Jenkins系統設定

點選左側“系統管理”——右側選擇“系統設定”——“全域性屬性”,選擇第一項:Environment variables,鍵值對列表,點選增加:
鍵:LANG
值:zh.CH.UTF-8 點選儲存,見下圖:

1.2、Jenkins.xml檔案修改

在Jenkins安裝目錄下找到jenkins.xml檔案
找到<arguments> ……</arguments>,在中間新增-Difile.encoding=utf-8 ,見下圖:

1.3、設定jenkins所在伺服器環境變數,右鍵我的電腦→屬性→高階系統設定→環境變數,新增變數JAVA_TOOL_OPTIONS

 

1.4、最後重啟jenkins
dos環境下輸入cmd;
方法一:停止jenkins:net stopjenkins
啟動jenkins:net startjenkins
如果該方法不能重啟,使用方法二;
方法二:直接執行services.msc調起系統“服務”,找到jenkins手動重新啟動

win+R ,然後輸入services.msc

2、Jenkins遠端觸發構建job

搭建好了jenkins環境,並且建立好了Job後,如何遠端觸發構建而不需要登入Jenkins管理系統。
很簡單的幾步就能搞定。步驟如下:
2.1、選擇“觸發遠端構建”->輸入身份驗證令牌“12345”
2.2、組合url地址(job名稱以英文形式命名)
http://jenkins地址/job/job名稱/build??token=口令&cause=書寫構建原因 ,如下是我的地址:
http://localhost:8080/job/AutoRyline_API/build??token=12345
2.3、傳送構建請求,在瀏覽器中訪問url
http://localhost:8080/job/AutoRyline_API/build??token=12345
2.4、請求後瀏覽器不會有反應,後臺收到請求開始構建。

3、Jenkins多個專案構建順序設定

 使用jenkins中,當有多個jobs需要互相關聯時,就需要設定jobs的上下游關聯關係。比如job_A執行後觸發job_B。
3.1、Build after other projects are built設定

(1)這裡設定的為上游的jobs名稱,比如在job_B填寫的設定中填寫了job_A,則會等待job_A執行完後,自動觸發job_B執行
(2)可以設定多個,用逗號分開,比如在job_B填寫的設定中填寫了job_A,job_C,則會等待job_A,job_C執行完後,自動觸發job_B執行
3.2、Build other projects

 

(1)在構建後操作中,新增一個操作步驟Build other projects,這裡設定的就是下游的jobs執行,比如在job_B填寫的設定中填寫了job_A,則job_B執行完後,自動觸發job_A執行
(2)當然這裡也可以填寫多個,形成了並行;比如在job_B填寫的設定中填寫了job_A,job_C,則ob_B執行完後,自動觸發job_A,job_C一起執行

4、Jenkins多job設定(序列、並行)

4.1、jenkins-multijob-plugin
jenkins-multijob-plugin這個是外掛。這個外掛主要作用就是把多個jobs組裝起來,形成持續整合。

4.2、新建jobs,選擇MultiJob Project

4.3、進入job設定,在構建模組,新建構建步驟,選擇MultiJob Phase

 

5、Jenkins設定任務超時、超時停止任務

在使用jenkins進行自動編譯、構建時有些任務可能由於網路或其他原因一直阻塞,導致該專案不能再次執行編譯構建。我們希望在某些任務執行時間超過一定值時將其終止。
jenkins的”build timeout plugin”外掛可以幫我們完成該任務。jenkins預設就已經安裝了該外掛,如果預設沒有安裝可在外掛管理中搜索進行安裝。
任務超時配置如下圖:

6、Jenkins定時構建

6.1、配置定時任務
選中Job名稱--配置—構建觸發器—勾選“Build periodically”


如圖中配置所示:該任務每天上午7點定時執行一次。

6.2、定時構建語法:
* * * * *
第一個*表示分鐘,取值0~59
第二個*表示小時,取值0~23
第三個*表示一個月的第幾天,取值1~31
第四個*表示第幾月,取值1~12
第五個*表示一週中的第幾天,取值0~7,其中0和7代表的都是週日

6.3、常用定時構建舉例:
每隔5分鐘構建一次
H/15 * * * *
每兩小時構建一次
H H/2 * * *
每天早上10點定時構建一次
00 10 * * *
每天下午下班前定時構建一次
00 18 * * *

 

此致,謝謝。

特此宣告:版權歸鳳鳳同學所有。