天天看點

linux下 jenkins+ant+jmeter腳本

一、ant安裝:下載下傳安裝包

linux下 jenkins+ant+jmeter腳本

1.上傳到伺服器,然後解壓:tar -vxzf apache-ant-1.9.14-bin.tar.gz 

2.修改權限:chmod 777 apache-ant-1.9.14

3.配置環境變量:vi /etc/profile,在末尾加上

linux下 jenkins+ant+jmeter腳本

4.輸入ant -version沒有報錯說明安裝成功了。

二、jmeter配置:

1.将jmeter extras目錄下的ant-jmeter-1.1.1.jar 檔案拷貝到ant安裝目錄下的lib檔案夾中

2.修改jmeter.log的權限為可修改 chmod -R 777 jmeter.log,不然會報錯說沒有權限

3.修改report存放目錄的權限 chmod -R 777 jmeter-report,不然會直接找不到.jtl檔案

4.修改jmeter.properties中的output_format為xml

linux下 jenkins+ant+jmeter腳本

三、在linux下安裝jenkins

指令如下:rpm -ih jenkins-2.32.3-1.1.noarch.rpm

安裝完後出現目錄

/usr/lib/jenkins/jenkins.war WAR包 

/etc/sysconfig/jenkins 配置檔案 (可以修改端口:JENKINS_PORT="8088")

/var/lib/jenkins/ 預設的JENKINS_HOME目錄

/var/log/jenkins/jenkins.log Jenkins日志檔案

修改環境變量,新增java路徑

linux下 jenkins+ant+jmeter腳本

啟動:service jenkins start

首次登陸時,密碼在/var/lib/jenkins/secrets/initialAdminPassword裡面,使用者名為admin

配置Glocal Tool Configuration

linux下 jenkins+ant+jmeter腳本
linux下 jenkins+ant+jmeter腳本

點選配置:

(1)建構,invoke Ant,ant Version記得選擇環境變量中定義的。

linux下 jenkins+ant+jmeter腳本

(2)建構後操作

linux下 jenkins+ant+jmeter腳本

注意linux中目錄為:

linux下 jenkins+ant+jmeter腳本

build中存放的是jmeter的一些配置如下,jmeter-report存放的是生成的報告,jmeter-script中存放的是jmeter腳本

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter-test" default="run" basedir=".">

      <tstamp>

        <format property="time" pattern="_yyyy_MMdd_HHmmss" />

    </tstamp>

    <!-- 需要改成自己本地的 Jmeter 目錄-->  

    <property name="jmeter.home" value="/home/apache-jmeter-3.3" />

    <property name="report.title" value="接口測試"/>

    <!-- jmeter生成jtl格式的結果報告的路徑--> 

    <property name="jmeter.result.jtl.dir" value="/home/ant/jmeter-report" />

    <!-- jmeter生成html格式的結果報告的路徑-->

    <property name="jmeter.result.html.dir" value="/home/ant/jmeter-report" />

    <property name="detail" value="_detail" />

    <!-- 生成的報告的字首-->  

    <property name="ReportName" value="SmokeReport" />

    <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" />

    <target name="run">

        <antcall target="test" />

        <antcall target="report" />

    </target>

    <target name="test">

        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />

        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">

            <!-- 聲明要運作的腳本"*.jmx"指包含此目錄下的所有jmeter腳本-->

            <testplans dir="/home/ant/jmeter-script" includes="*.jmx" />

            <property name="jmeter.save.saveservice.output_format" value="xml"/>

        </jmeter>

    </target>

    <path id="xslt.classpath">

        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>

        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>

    </path>

    <target name="report">

        <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>

        <xslt 

              classpathref="xslt.classpath" target="_blank" rel="external nofollow"

              force="true"

              in="${jmeter.result.jtlName}"

              out="${jmeter.result.htmlName}"

              style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">

              <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>

運作的結果如圖

linux下 jenkins+ant+jmeter腳本
linux下 jenkins+ant+jmeter腳本

由于jenkins預設不顯示css樣式,則需要執行一段Groovy script,下載下傳Groovy plugin,編寫groovy腳本System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

linux下 jenkins+ant+jmeter腳本

再次建構後如圖

linux下 jenkins+ant+jmeter腳本

參考文檔 :https://www.jianshu.com/p/14360473fbed