jenkins+ant+jmeter實現自動化集成(詳解)


jenkins+ant+jmeter實現自動化集成 for window

一、jmeter

    1.jmeter安裝

二、ant

    1.ant安裝

三、ant運行 jmeter腳本

    1.配置

四、jenkins部署

 

一、jmeter

今天自主研習jmeter+ant+jenkins自動化環境部署,網上提供了很多教程介紹,Windows版本的,mac版的,很多。每一篇都大概看了,也跟着操作但還是會卡在某個環節,感覺很多教程介紹的不是很詳細,有些步驟略過了,導致我部署環境遇到了很多問題。記錄下來,邊學習邊鞏固,而且之后會用到的。

1.jmeter安裝

使用谷歌瀏覽器進入 jmeter官網:https://jmeter.apache.org/ 下載jmeter zip包

下載比較簡單,下載后我把壓縮包放在 applications目錄下進行解壓,

之后進入控制面板編輯系統環境變量,編輯path,新建變量把jmeter路徑添加至列表保存

 

 

 win+R 輸入cmd 打開 windows 系統 DOs 命令窗口 輸入 jmeter -v 查看是否安裝成功和安裝的版本是否一致,顯示如下圖代表配置成功啦!

 

 

 之后啟動只要在終端輸入jmeter回車就可以啟動了(懶人必備!)

 

 

 

二、ant安裝

1.ant安裝包下載地址

http://ant.apache.org/bindownload.cgi

下載zip文件並進行解壓縮(我把下載文件放在了和Jmeter同一個路徑applications目錄下)

 

 

 

 

 

 2.配置環境變量

設置ant環境變量(此處為我的安裝路徑)

ANT_HOME=E:\application\apache-ant-1.10.9

CLASSPATH=E:\application\apache-ant-1.10.9

Path=E:\application\apache-ant-1.10.9\bin

【也可以Path=%ANT_HOME%\bin】

 

 

 3.安裝驗證

1)首先配置好環境之后,需將 jmeter的extras目錄中ant-jmeter-1.1.1.jar包拷貝至ant安裝目錄下的lib目錄中,該包相當於是ant和jmeter連接的橋梁,作用

是使Ant運行時能夠找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"這個類,從而成功觸發JMeter腳本

 

 

 2)修改Jmeter的bin目錄下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
作用是使Jmeter報告輸出文件格式為xml

 

 

 3)在jmeter安裝目錄下新建文件夾demo,在demo下新建文件夾report,report下再新建jtl和html文件夾,html和jtl文件夾的作用:
html文件夾:用於保存html的結果報告
jtl文件夾:用於保存jmeter的測試腳本

(一開始jtl和html文件夾下都是空的,執行了ant命令之后jtl會生成截圖)

 

 

 4)在CMD下輸入ant -version后,會輸出 ant版本號,說明配置成功,下一步配置build.xml文件

 

 

 

build.xml:Ant根據該文件運行jmeter腳本(關鍵文檔,需要配置正確)
它的作用就是把生成的.jtl數據文件轉換為.html格式的報告

具體屬性的含義:

in:生成的.jtl文件的路徑
out:生成的.html文件的路徑
style:從.jtl轉換成.html所使用的樣式,這些文件也在extras目錄下,這個是最重要的部分,如果我們想定制報告可以自行定義這個文件或者從網上找一些合適的文件。

build.xml通用模版如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddHHmm" />
</tstamp>
<!-- 需要改成自己本地的Jmeter目錄-->
<property name="jmeter.home" value="/Applications/apache-jmeter-5.1.1" />
<!-- jmeter生成jtl格式的結果報告的路徑-->
<property name="jmeter.result.jtl.dir" value="/Applications/apache-jmeter-5.1.1/demo/report/jtl" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="/Applications/apache-jmeter-5.1.1/demo/report/html" />
<!-- 生成的報告的前綴-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<!-- 輸出生成的報告名稱和存放路徑-->
<echo message="${jmeter.result.jtlName}"/>
<echo message="${jmeter.result.htmlName}"/>
<echo message="${jmeter.result.html.dir}"/>

<target name="run">
<antcall target="test"/>
<antcall target="report"/>
</target>
<!-- 指定ant-jmeter-1.1.1.jar 的位置 -->
<path id="jmeter.classpath">
<fileset dir="${jmeter.home}/extras">
<include name="ant-jmeter-1.1.1.jar"/>
</fileset>

</path>
<!--加載jar包,解決顯示時間問題-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>

<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本,比如test*。jmx表示以test開頭的所有.jmx文件-->
<testplans dir="/Applications/apache-jmeter-5.1.1/demo" includes="*.jmx" />
<!-- 聲明ant執行jmeter時,傳入jmeter的屬性值,可以自定義必須是xml格式 -->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>

<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy-MM-dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
<!--jmeter-results-detail-report_21.xsl這里的文件名可以換成你想要的報告效果-->
<!--顯示dateReport的時間-->
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>

 根據個人環境的不同,上述需要修改的模版參數為:

 

 

 build.xml文件的配置比較重要,網上有些是有的build.xml模板缺漏 導致允許時,一直build failed。因此需檢查是否有以下該段代碼

<!-- 指定ant-jmeter-1.1.1.jar 的位置 -->
<path id="jmeter.classpath">
<fileset dir="${jmeter.home}/extras">
<include name="ant-jmeter-1.1.1.jar"/>
</fileset>

</path>

5)准備要要運行的項目,把寫好的jmemeterh腳本放在demo目錄下

 

 

 

 

 

 

 

 

6) 運行。我的build.xml文件放在demo目錄下,所以先終端切換到該目錄

# 終端cd到demo目錄
cd /Applications/apache-jmeter-5.1.1/demo
# 之后運行
ant
# 或者
ant run

執行成功后查看 E:\application\apache-jmeter-5.4\demo\report 下的html和jtl文件建是否有報告生成

四、jenkins部署(linux系統centos6.5)--->據官方文件centos6所有的yum已被清除;因此換了centos7請瀏覽這篇博客:https://www.cnblogs.com/weihc/p/14174203.html

1.安裝jenkins

下載linux jenkins ,官網地址:https://pkg.jenkins.io/redhat/ 

下載這個因為是訪問國外網站,訪問很慢,這邊我已經下載好了,放到了我的百度雲盤上,

linux jenkins 鏈接:    https://pan.baidu.com/s/1oFifF8HSOjFrv199_36UyA       提取碼: zfyq

下載完成之后,在根目錄下創建文件夾 mkdir -p /user/lib/jenkins

將 jenkins-2.174-1.1.noarch.rpm 放到jenkins目錄

 

 進入jenkins目錄解壓,解壓命令:rpm -ivh jenkins-2.174-1.1.noarch.rpm

解壓成功之后,查看jenkins安裝的目錄:whereis jenkins

 

 這邊啟動有個小插曲,我啟動報錯了

原因是因為我安裝的 jenkins 還沒有配置  jdk的路徑

找一下jdk安裝路徑:ps -ef | grep java

 

 然后修改 vi /etc/init.d/jenkins 文件 ,配上jdk安裝路徑

 

 修改完成之后,重新啟動一下jenkins,啟動成功~,啟動命令:service jenkins start

訪問一下,瀏覽器訪問:http://服務器IP:8080/

發現無法訪問,排查一下原因是因為 沒有關閉防護牆:service iptables stop

CentOS 7.0默認使用的是firewall作為防火牆

查看防火牆狀態

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall開機啟動

systemctl disable firewalld.service

重新訪問成功

訪問jenkins的時候,有個初始化密碼,需要輸入,這邊查找初始化密碼的方法也在下面

cat /var/lib/jenkins/secret/initialAdminPassword

 

 輸入之后,訪問成功~

2.安裝好后,新建一個自由風格的項目 

 

 

 

源碼管理

 

 

 

填寫你本地的ant_home(若忘記了的童鞋可以打開你的系統變量配置哦,mac 用open .bash_profile在終端打開,可看到你配置的路徑,復制過來即可)

 

 

構建Ant,調用ant的build.xml配置文件

 

 之后點擊”增加構建后操作步驟”(要安裝HTML publish插件)沒有安裝點擊時看不到此插件,如下

 

 找到manage jenkins -->Global Tool Configuration

 

 

在插件過濾篩選,安裝即可

 

 

安裝后可以看見Publish HTML report

 

 

 

 之后在項目點擊build now

 


免責聲明!

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



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