小白搭建自動化測試平臺
1.準備
系統:win7專業版/winsever2008
安裝包:
jdk:jdk-8u91-windows-x64.exe(這裡jmeter3.2最低需要jdk8支援)
Jenkins:jenkins-2.60.3.zip
Ant:apache-ant-1.10.1.zip
Jmeter:apache-jmeter-3.2(這裡3.2版本對響應資料的相容性更好,中文亂碼的 情況更少)
程式設計工具:Notepad++(用於修改程式碼片段)
片段/外掛:build.xml程式碼片段、
測試模版:jmeter.results.shanhe.me.xsl、jmeter-results-detail-report_21.xsl
PS:以上檔案除build.xml檔案,其他安裝包等請自行下載,本文也會提供下載方法。
2.安裝jdk
安裝包可以到官網下載也可到第三方應用市場(或直接百度也可)下載安裝(此法版本可能不是最新,但比較穩定),後面使用的jmeter也需要jdk支援,但他會自動載入jdk,此處將jdk放在第一位置是為了後續如果有誤操作導致jdk故障,可參照此處重新安裝jdk修復。
2.1 安裝jdk
安裝JDK選擇安裝目錄,安裝過程中會出現兩次安裝提示。第一次是安裝jdk,第二次是安裝jre。這裡建議使用預設路徑,會自動分開兩個資料夾。(不能強行安裝在java資料夾的根目錄下,jdk和jre安裝在同一資料夾會出錯
1:安裝jdk隨意選擇目錄只需把預設安裝目錄\java之前的目錄修改即可
2:安裝jre→更改→\java之前目錄和安裝jdk目錄相同即可
注:若無安裝目錄要求,建議全預設設定。無需做任何修改,兩次均直接點下一步。
2.2 配置環境變數
安裝完JDK後配置環境變數計算機→屬性(也可使用快捷鍵win+break;筆記本的話可能需要Fn+win+break)→高階系統設定→高階→環境變數
系統變數→新建JAVA_HOME變數。
變數值填寫jdk的安裝目錄(本人是E:\Java\jdk1.8.0)
系統變數→尋找Path變數→編輯
在變數值最後輸入:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原來Path的變數值末尾有沒有;號,如果沒有,先輸入;號再輸入上面的程式碼)
系統變數→新建CLASSPATH變數
變數值填寫:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一點)系統變數配置完畢。
2.3 檢查配置結果
檢驗是否配置成功:win+r執行cmd輸入java和java-version(java和-version之間有空格)。
如圖所示,顯示版本資訊則說明jdk和jre安裝配置成功。
3.部署jenkins
百度“jenkins 下載”,跳轉到jenkins war包下載頁下載最新war包(此法用於簡易安裝,不會跟隨系統重啟,每次需執行java命令重新部署(原設定已儲存)),或到Jenkins官網下載穩定安裝包(windows installer安裝包,一直點選下一步,預設安裝即可,不在此贅述。此法用於穩定安裝,會跟隨系統重啟)。
3.1 安裝jenkins
在jenkins.war所在目錄資料夾中shift+滑鼠右鍵->選擇“在此處開啟命令視窗”cmd執行:java -jar jenkins.war(注意空格)等提示安裝成功並執行後即可去瀏覽器位址列輸入:localhost:8080(預設埠8080)
Ps:初學者在瀏覽器上操作前,一定先聯網(安裝外掛需要聯網)
Ps:這裡jenkins的安裝目錄需記住,後面部署自動生成測試報告要用到,此處jenkins為簡易安裝,預設安裝目錄為:C:\Users\Administrator\.jenkins(administrator使用者需根據具體電腦設定進行相應修改,如有興趣也可嘗試jenkins自定義部署,不過配置除錯的成本比較大)。
另在此提供jenkins啟動和停止的命令供大家使用:net start jenkins(啟動jenkins)和net stop jenkins(結束執行)。
3.2 jenkins啟用
出現該頁面說明jenkins安裝部署成功,需要按照提示地址找到password粘到圖中輸入框驗證,通過後即可建立管理員(只有建好管理員以後才算解鎖成功,在這之前會提示安裝外掛,建議選擇推薦安裝,基礎外掛不用再費力去找了)建管理員時切記填寫郵箱(初學者建議使用外網郵箱,便於設定成功)
管理員建好以後就會來到jenkins web頁面,如下圖:
3.3 Jenkins外掛安裝
在jenkins右側功能選單選擇系統配置,如圖:
在jenkins管理頁面選擇管理外掛進到管理外掛頁面,選擇可選外掛(需聯網),如圖:
等外掛列表載入完後,在右上角的過濾欄輸入想要安裝的外掛,會檢索到對應的外掛,選擇直接安裝即可,建議在跳轉出來的頁面勾選“安裝完成後重啟jenkins”以使新裝的外掛生效。
此處需確定此處預設安裝已安裝如下三個外掛,如部署jenkins時選擇自定義,未安裝則按照上述步驟搜尋安裝這兩個外掛:
Ant Plugin(用於支援ant功能接入)
Email Extension Plugin(用於郵件配置,傳送通知郵件)
ps:還有一種方法是將所需外掛下載下來使用上傳功能上傳安裝,如下圖,對於某些伺服器不能聯網的,這種方法很奏效,但需要搞清楚各個外掛間的依賴關係(如果安裝順序錯誤會報錯,建議先找一臺可以連網的機器先安裝(會有備份的,路徑:“Jenkins安裝目錄\Jenkins\plugins”,將字尾.jpi改成.hpi即可上傳使用)),此處不贅述。
3.4 配置郵箱
此處傳送郵件通知利用jenkins系統傳送郵件功能(預設為系統email外掛功能,此處為了豐富email功能需利用Email Extension Plugin)
系統管理員郵件地址是必輸的,否則會報錯。
系統郵箱設定如上圖,如郵箱沒用到ssl協議請勿勾選“使用SSL協議”,設定完成後記得勾選測試,檢查郵箱設定是否成功。
ps:中文版設定時有中文和英文兩個版式,經測,僅填寫英文或中文的即可,建議填寫英文的(反正中英文是一一對應的,順便熟悉英文版本),如果是區域網郵箱可參照下圖:
4.配置Ant
百度ant下載,跳轉到ant下載頁面獲取最新安裝包。參照java環境變數設定,但僅配置兩處系統變數即可:
1. ANT_HOME:ant安裝路徑,即ant解壓以後放至的路徑(建議放在jmeter_home\extras\下,因為需要將ant-jmeter-1.1.1.jar放在apache-ant-1.10.1\lib下)。
2. Path:在系統變數中的Path裡新增“%ANT_HOME%\bin;”
ps:修改ant環境變數後一定記得重啟電腦以使配置生效。
5.安裝jmeter
5.1 下載
百度jmeter下載前往apache官網下載apache-jmeter-3.2.zip
5.2 安裝
解壓apache-jmeter-3.2.zip放至“C:\Program Files (x86)\”(穩定版jenkins預設安裝目錄)
5.3 Jmeter測試報告輸出欄位配置
在“jmeter安裝目錄\apache-jmeter-3.2\bin”下找到jmeter.properties檔案使用記事本或notepad++、UE等開發工具修改以下引數:
此處原為“csv”,現改為“xml”。
此處重點關注去掉註釋部分欄位,也可修改其他資訊輸出(部分標true資訊雖然註釋了,但實際還會輸出出來,只是在Property Display(jmeter工作臺新增“非測試元件-Property Display”)中不會顯示),最後一定要將修改處註釋去掉,否則不會生效,修改完儲存即可(謹慎起見,建議將jmeter安裝包和修改後的程式都備份一份)。
ps:此處僅修改涉及到報告生成的部分,其他系統執行配置保持預設即可,有興趣的可以百度搜索修改之,但切忌做好下載包備份以防止修改錯誤導致jmeter生成報告功能不可用或異常。
5.4 測試報告優化
1. jmeter-results-detail-report_21.xsl:
用notepad++開啟“安裝目錄\apache-jmeter-3.2\extras”下jmeter-results-detail-report_21.xsl測試報告模版獲取彙總報告模版:
測試報告左上角展示資訊優化:
修改第31行showData值為y,其他title可根據具體專案名稱修改,時間因獲取的資料是動態的,此處時間戳未找到合適的獲取方法,不建議修改。
測試報告版式優化(解決獲取到的響應資料太長不折行問題):
在55行後新增兩行:
word-wrap:break-word;//文字行打斷;
max-width:700px;//最大寬度為700px;
並將white-space: nowrap;(空格處不允許折行)
改為white-space: normal;(正常格式)。
Url連結優化(滿足報告快速切換的需求):
將原148行兩處連結換為詳細測試報告url地址和備份url地址,以便於在測試報告頁面可快速檢視詳細報告和歷史報告(url可在生成詳細報告和備份後獲取)
2. jmeter.results.shanhe.me.xsl:
百度jmeter.results.shanhe獲取測試報告模版jmeter.results.shanhe.me.xsl
折行優化:
由於請求和響應資訊預設是不折行的,當資料長度過長時,會嚴重影響閱讀,故而在此對模版中表格資料進行折行優化。
在模版程式碼開篇處第29行,參照jmeter-results-detail-report_21.xsl折行優化方法修改,具體寬度可根據實際情況修改,我的修改為了950px。
Sampler欄位優化:
使用notepad++開啟jmeter.results.shanhe.me.xsl,根據需要修改需要展示的欄位。
此處我刪除了兩處count:thread_counts和sample_count兩個欄位並將response code與response message合為response code/msg一個,效果如下:
Assertion(斷言資訊)、request(請求資訊)和response(響應資訊)不在此處作修改。
兩個模版優化後放至“jmeter安裝目錄\apache-jmeter-3.2\extras”下備用。
ps:此處會因為5.3測試報告輸出欄位配置失誤導致個別欄位顯示不出來(我在實現的時候url老出不來),如出現此類情況請先將所有測試資料初始化(原有的jtl檔案、html檔案,對應在workspace/projectname和jobs/projectname/htmlreports兩處都需要將結果檔案清空,否則執行出來的結果會影響到新檔案的生成,會讓我們誤以為配置修改不成功,我在配置的過程中遇到這個大坑,給大家踩平了,當然也希望大家利用這篇文件可以一次性配置成功)。
6.Jenkins自動化例項
6.1 建立自由風格專案
6.2 設定構建保留時限
6.3 設定觸發條件
我設定的是工作日(週一到週五)每天8點以後隨機觸發,如設定專案構建完成後執行自動化測試,請忽略此處設定。
日程表規則:
這裡共5位引數,分別是minutes(0-59)、hour(0-23)、month(1-12)、week(1-7),*表示不限制,五位數字設定時中間一定加空格間隔開,否則無法識別。
第一個是代表分鐘 H 表示隨機
第二個是代表小時 9-15/4表示9點到下午三點期間的每隔4個小時
第三個是代表天 * 任意一天
第四個是代表月份 1-11 表示1到11月份
第五個是代表星期 1-5 表示工作日
沒有用到 H 隨機的話,不要加括號
H(9-18) 表示9點到18點 中隨機的一個點
e.g.
* * * * * 表示任何一個時間段,同一個時間都可能會觸發執行。不建議使用
H/30 * * * * 表示每天每隔 30分鐘構建一次
H 4-19/3 * * * 表示,一天的凌晨點到下午7點,每隔3個小時構建一次
* * 3-5 * * 表示,每個月的3號,4號,5號
都會被構建,具體時間未知
* * * * 1-5 表示,工作日時會構建,具體時間未知
H/30 8-19/3 1-28 1-11 1-5 表示 在1月到11月中的1號-28號,每個工作日,早晨的8點到下午7點每隔3.5個小時會觸發構建
6.4 編寫ant執行指令碼
百度搜索“jenkins+ant+jmeter”,在部落格中獲取到build.xml原始碼,可參照部落格中的說明和實際情況進行優化,最終達到的效果需可以使用瀏覽器開啟build.xml檔案並能檢視對應原始碼資訊,在此貼上原始碼檔案。
build.xml檔案編寫完放在“安裝目錄/Jenkins/workspace/projectname”下
ps:這裡的build.xml檔案都是執行命令,按照如下順序依次執行:
1. 定義一個專案,執行在工作空間,設定編碼格式為GBK;
2. 建立一個時間戳並設定時間格式,備用;
3. 設定jmeter執行目錄jmeter.home;
4. 設定報告生成目錄及報告名稱;
5. 呼叫xalan*.jar和serializer*.jar兩個jar包中的org.programmerplanet.ant.taskdefs.jmeter.JMeterTask類
6. 宣告jmeter執行指令碼所在目錄並設定報告生成格式為xml;
7. 呼叫測試報告模版從jtl檔案中匯入資料到測試模版中去,生成測試報告;
8. 測試報告生成並備份,備份過程中需呼叫第二步生成的時間戳;
刪除工作空間中的jtl檔案(如不刪除,歷次測試結果會寫到同一檔案中去,最終影響到detail報告資料)。
6.5 呼叫ant
因我在build.xml中設定ant預設執行命令為run,且將build.xml檔案放至安裝目錄\Jenkins\workspace\projectname下,故此處targets填寫run。
6.6 構建後操作
6.5.1 釋出html報告
Result:釋出html檔案所在路徑
Report.html:預設釋出report.html(如果build.xml檔案中生成的是index.html,則此處就得填index.html)
6.5.2 傳送通知郵件
選擇HTML(text/html),配置郵件模版
附上郵件模版程式碼:
配置收件人清單,收件人之間用英文逗號“,”隔開。
ps:如果此處傳送的郵件有中文亂碼,還記得系統配置時的郵箱配置嗎?字符集改成GBK試試(預設為UTF-8)。