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


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

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

 

2:如果jmeter是單節點部署的,那么jenkins的安裝只需安裝在jmeter所在的單節點機器上即可;如果jmeter要進行分布式測試,那么將jenkins安裝在jmeter的master所在機器上即可

這里我以分布式測試為例進行講解,我的jmeter的master機器為134.64.14.95機器,jenkins安裝只需要安裝在該機器上即可

 

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

解壓縮tomcat包,然后將jenkins.war放到tomcat目錄webapps文件夾下

 

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

 

5:保存后,啟動tomcat,日志打印會給出admin用戶的密碼以及密碼存儲文件的路徑

 

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持續集成的全部內容了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM