jenkins jmeter持續集成批處理jmx腳本

這篇文章介紹jenkis jmeter的持續集成,利用jenkins定時任務去批處理執行jmeter的jmx腳本文件,而且生成測試報告web

1:jmeter的安裝這裏我就不在贅述了,若有問題可參考個人jmeter系列博文之-jmeter命令行運行-單節點和jmeter命令行運行-分佈式測試shell

 

2:若是jmeter是單節點部署的,那麼jenkins的安裝只需安裝在jmeter所在的單節點機器上便可;若是jmeter要進行分佈式測試,那麼將jenkins安裝在jmeter的master所在機器上便可apache

這裏我以分佈式測試爲例進行講解,個人jmeter的master機器爲134.64.14.95機器,jenkins安裝只須要安裝在該機器上便可瀏覽器

 

3:jenkins安裝,下載tomcat和jenkins包,上傳到master機器(134.64.14.95),這裏給出個人雲盤地址:http://pan.baidu.com/s/1nuCbopz 密碼:dxeztomcat

解壓縮tomcat包,而後將jenkins.war放到tomcat目錄webapps文件夾下網絡

 

4:修改tomcat的conf/server.xml配置文件(3處端口號和一處utf-8編碼)app

 

5:保存後,啓動tomcat,日誌打印會給出admin用戶的密碼以及密碼存儲文件的路徑webapp

 

5:啓動tomcat後,在瀏覽器中打開網址:http://134.64.14.95:50002/jenkins分佈式

在密碼欄輸入以前日誌中給出的密碼或打開對應路徑下的文件也能夠找到密碼內容:41a4494785314e62ae7c48bc9e292cce性能

輸入密碼後點擊下一步,會讓你選擇是配置網絡插件仍是跳過,這裏咱們選擇跳過

而後選擇繼續使用admin用戶,完成jenkins啓動的準備工做,點擊start using jenkins

這樣咱們就進入了jenkins的頁面:

 

6:在jenkins頁面配置jdk,進入系統管理-Global Tool Configuration中,點擊新增JDK按鈕,去掉自動安裝前面的勾選框,此時會顯示別名和JAVA_HOME

 

7:新建job,構建一個自由風格的項目,名稱爲:jenkins_jmeter_test

 

8:配置job,上圖點擊ok後,會跳轉到job的配置頁面

  • job構建生存期配置

  • job構建工做空間配置,保證該工做空間地址存在後面jenkins運行的結果文件會存放在裏面

  • job構建觸發器,以下爲15分鐘執行一次,固然你也能夠設置成你想要的定時器效果,這裏的語法我會在後面附錄中詳細講解

  • job構建腳本,在構建一欄,點擊增長構建步驟:execute shell 利用shell命令來批處理執行jmeter腳本

這裏我將我想要執行的jmx腳本都放在了自定義的工做空間中/home/tester/jenkins_jmx

在jenkins頁面execute shell欄輸入shell命令,注意這裏根據須要修改路徑和jmx以及jtl文件路徑及名稱:

1 cd /home/tester/apache-jmeter-3.0/bin

2 ./jmeter -n -t /home/tester/jenkins_jmx/crm_test_20.jmx -r -l /home/tester/jenkins_jmx/crm_test_20.jtl && ./jmeter -n -t /home/tester/jenkins_jmx/crm_test_10.jmx -r -l /home/tester/jenkins_jmx/crm_test_10.jtl

  • job構建後操做,要想將jtl文件生成測試報告,須要安裝一個插件performance,雲盤地址爲:http://pan.baidu.com/s/1kUCLocn 密碼:dnp9

下載該插件,在jenkins界面中系統管理-管理插件下,在管理插件頁面點擊高級,在高級頁面,找到上傳插件欄,上傳該插件

 安裝完成後重啓tomcat,而後在首頁中,進入剛剛保存的job中繼續繼續job構建後操做

添加構建後操做,選擇publish performace test result report

選擇後,頁面會出現關於該項的一系列信息,選擇performance report爲jmeter

輸入全部測試結果的存放地址: **/*.jtl,並勾選上展現 throughput 圖標框

點擊保存,這樣一個定時15分鐘批量處理jmx腳本的jenkins的job就配置好了。

 

8:驗證job,配置完成後咱們能夠點擊當即構建,看該任務是否能正常執行生成報告

觀察build history欄下面會出現一個構建任務,而且閃爍和出現滾動條進度信息,待滾動條完成且任務不在閃爍,表明任務執行完成,點擊該任務進入該次構建,點擊console output能夠看到該次構建控制檯的日誌信息

這樣就實現/home/tester/jenkins_jmx路徑下的腳本批量執行,咱們能夠去看生成的測試報告:性能趨勢圖中會展現每一個jtl的趨勢圖包括吞吐量、響應時間、錯誤率

點擊last report能夠詳細展現最後一次的結果詳情信息:

 點擊右側的response time trends for build 會詳細展現該次構建每一個請求方法的具體響應時間趨勢圖:

 

9:附錄,構建觸發器日程表語法解析

  • 日程表每行5個字段,以tab或者空格隔開幫助裏寫的5個字段爲:MINUTE HOUR DOM MONTH DOW(分時日月星期幾)

MINUTE:指分鐘,範圍爲0-59

HOUR:指小時,範圍爲0-23

DOM:指day of month,日,範圍爲1-31

MONTH:指月,範圍爲1-12

DOW:指day of week,星期幾,範圍爲0-7,0和7表示的都是sunday即週日

 

  • 若是想爲一個字段指定多個值,能夠用下面的操做符,以優先順序來看:

*:指定全部有效的值

M-N:指定值的範圍爲M-N

M-N/X:指定值的範圍爲M-N,步長爲X

*/X:指定按X步長來取值

A,B..Z:枚舉多個值

 

  • 對於H的解釋,咱們要儘量多使用H符號:

jenkins中週期性任務在系統中執行時發生負載,因此咱們應儘量的使用H符號('散列'),使得系統任務不會在同一時間同時發生,更好利用系統資源,舉個例子來講, 0 0 * * *和H H * * *,0 0 * * *會使得任務天天在晚上12:00點同時都觸發執行,而H H * * *爲天天執行一次,可是不會讓任務在同一時間同時觸發執行,這樣有利於系統空閒時的利用,避免大量任務在同一時刻觸發發生負載。

H符號可使用範圍,如H H(0-7) * * *表示0點即天天晚上12:00到上午7:59之間觸發一次任務

H符號可使用步長,如H */2 * * * 表每兩個小時觸發一次任務

H符號可使用步長+範圍,如H H(0-7)/2 * * * 表示晚上12點到上午7:59之間的時間每2個小時觸發一次任務如1:,3:,5:,這些間隔的時間取值均在0-7小時範圍內

 

  • 空行和以#開頭的行將被忽略,不被執行
  • @yearly, @annually, @monthly, @weekly, @daily, @midnight, and @hourly支持別名的方式

@hourly和H * * * *執行效果是同樣的,都是每小時執行一次,意味着任務將在小時中的任意一個時間內被執行

@midnight指的是晚上12:00到2:59分這段時間

 

如下用不一樣的例子來講明cron的強大:

1:* * * * *

每分鐘執行一次

2:5 * * * *

每小時第5分鐘執行一次

3:H/15 * * * *

每15分鐘執行一次

4:45 10 * * 1-5

每週一到週五10點45執行一次

5:H(0-29)/10 * * * *

每隔10分鐘執行一次,可是間隔時間的值須要在0-29分鐘範圍內,如 :05,:15,:20這幾種取值均在0-29分鐘內

6:45 9-16/2 * * 1-5

週一到週五,9點45分到16點45之間每隔2小時執行一次

7:H H(9-16)/2 * * 1-5

週一到週五,每隔2小時執行一次,可是間隔時間的值須要在9-16小時內,如:9:35,11:35,13:35,15:35

8:H H 1,15 1-11 *

1月到11月裏,每個月的第一天和第15天執行一次

 

好了,以上就是jenkins+jmeter持續集成的所有內容了。

相關文章
相關標籤/搜索