介面自動化測試框架介紹
測試框架結構:jenkins+git+postman+newman
相關概念:
Jenkins
一個用Java編寫的開源的持續整合工具,提供了軟體開發的持續整合服務,可監控並觸發持續重複的工作,具有開源、支援多平臺和外掛擴充套件、安裝簡單、介面化管理等特點。更多介紹(https://jenkins.io/)
git
Git是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案。
postman
一款強大的圖形介面介面開發/測試工具,能夠生成介面文件,可以使介面開發更簡單迅速。
newman
newman是用於執行postman collection的命令列工具,可以讓你直接通過命令列的形式來執行postman
collection,它具有可擴充套件性,可以輕鬆地將持續整合伺服器和構建系統整合在一起。
持續整合
持續整合, 簡稱CI(continuous integration).
CI作為敏捷開發重要的一步,其目的在於讓產品快速迭代的同時,儘可能保持高質量.
CI一種可以增加專案可見性,降低專案失敗風險的開發實踐。其每一次程式碼更新,都要通過自動化測試來檢測程式碼和功能的正確性,只有通過自動測試的程式碼才能進行後續的交付和部署.
CI使團隊成員間(產/研/測)更好地協調工作,更好的適應敏捷迭代開發,自動完成減少人工干預,保證每個時間點上團隊成員提交的程式碼都能成功整合的,可以很好的用於專案的打包.
系統關係
圖示
系統的工作流程大概分為以下幾步:
1> 開發者將新版本push到git server 。
2> git隨後觸發jenkins進行一次build。(通過web hook或者定時檢測)
3> jenkins master結點將這個build任務分配給若干個註冊的slave結點中的一個,
4>這個slave結點根據一個事先設定好的指令碼進行build。這個指令碼可以做的事情很多,比如編譯,測試,生成測試報告等等(我們要做的就是執行測試、生成測試報告)。這些原本需要手動完成的任務都可以交給jenkins來做。
5> 將構建結果返回給開發者/測試者
notes:jenkins的工作原理是先將原始碼從gitlab中拷貝一份到本地,然後根據設定的指令碼進行build。我們可以看出,整個系統的關鍵就是那個build指令碼,用來告訴jenkins在一次整合中需要執行的任務。
安裝配置
postman安裝配置
安裝:
postman官網上有針對Mac、Windows、Linux作業系統的安裝包,下載後安裝即可。
使用:
newman安裝配置
安裝:
第一步:安裝Node.js
newman是基於Node.js的,如果要執行newman,就必須先安裝Node.js。
Node.js官網上有針對Mac、Windows、Linux作業系統的安裝包,下載後安裝即可。
第二步:安裝newman
npm install -g newman
第三步:驗證
在終端或cmd視窗輸入 newman -version,出現newman版本號即說明安裝成功
使用:
newman提供一系列的命令來定製執行,可以通過-h命令來獲取常用的命令
newman run -h
常用Options:
-h, –help output usage information
-v, –version output the version numberBasic setup:
–folder [folderName] Specify a single folder to run from a collection.
-e, –environment [file|URL] Specify a Postman environment as a JSON [file]
-d, –data [file] Specify a data file to use either json or csv
-g, –global [file] Specify a Postman globals file as JSON [file]
-n, –iteration-count [number] Define the number of iterations to runRequest options:
–delay-request [number] Specify a delay (in ms) between requests [number]
–timeout-request [number] Specify a request timeout (in ms) for a requestMisc.:
–bail Stops the runner when a test case fails
–silent Disable terminal output
–no-color Disable colored output
-k, –insecure Disable strict ssl
-x, –suppress-exit-code Continue running tests even after a failure, but exit with code=0
–ignore-redirects Disable automatic following of 3XX responses
示例:
jenkins安裝配置
安裝及啟動:
jenkins官網上有詳細的介紹:https://jenkins.io/doc/book/installing/,可以通過docker或者war包的方式來安裝執行jenkins,這裡介紹下war包的方式。
1、從http://mirrors.jenkins-ci.org/war/latest/jenkins.war 下載最新的war包到本地;
2、進入jenkins的路徑下,開啟終端或cmd視窗執行命令java -jar jenkins.war
來啟動jenkins;
3、啟動過程中,它會將war包解壓到~/.jenkins目錄下,並生成一些目錄及配置檔案;
4、開啟瀏覽器輸入http://localhost:8080 即可進入jenkins
注:
1、jenkins本身是用java語言開發的,所以安裝jenkins的機器至少要有jdk;
2、執行時可以通過–httpPort=XXX指定埠號:java -jar jenkins.war --httpPort=49001
;
建立任務:
第一次進入jenkins時,會設定管理員使用者,設定完成之後登陸jenkins,點選右上角的“新建任務”可以新建一個任務
新建任務:
然後,建立任務介面輸入任務名稱,選擇要建立的任務風格,一般為自由風格的軟體專案:
進入任務配置,分為:General、原始碼管理、構建觸發器、構建環境、構建、構建後操作幾部分
原始碼管理:
在配置頁中,原始碼管理選擇Git,填入地址,並指定需要監控的分支,如果需要口令,在Credentials中新增使用者名稱/口令,或者使用SSH Key。
構建觸發器:
構建觸發器指定了觸發一次構建的條件。推薦使用最簡單的配置“Poll SCM”,它的意思是,定時檢查版本庫,發現有新的提交就觸發構建。這種方式對git、SVN等所有版本管理系統都是通用的。
構建遠端觸發器:本地生成身份驗證令牌,如“bf0e6550a7171ae7b86f49e6”,將“JENKINS_URL/job/mimir-test/build?token=TOKEN_NAME”配置在git的相應的任務中
Poll SCM:設定日程表,如“H/2 * * * *”,每兩分鐘檢測一下原始碼是否有變化,有變化則觸發自動構建
構建:
通過shell指令碼來進行構建,執行測試指令碼、生成測試報告
構建後:
Publish HTML reports:在jenkins任務介面中配置html報告
Editable Email Notification:傳送測試報告
構建:
通過觸發器觸發進行自動構建,或手動觸發構建
可以在控制檯檢視構建日誌: