1. 程式人生 > >八:jmeter指令碼整合到jenkins平臺,和ant中的build.xml檔案程式碼

八:jmeter指令碼整合到jenkins平臺,和ant中的build.xml檔案程式碼

1.寫好jmeter指令碼   xxxx.jmx
2.寫好ant外掛的build.xml指令碼,如下:

Ant這個外掛可能是我們最為經常使用的,若構建指令碼是使用build.xml的,那構建引擎肯定會選擇ant。

因此編譯打包我都選擇了ant進行。通過master-slaver這種模式,通常需要將構建指令碼拷貝到slaver機器上,因此有時需要更改一下build.xml中的一些內容就比較麻煩,需要在slaver機器上面去更改。為了方便配置管理人員可以直接在jenkins job配置管理頁面進行更改,因此將build.xml中一些需要更改的內容按照ant的property target進行引數化。

ant本身還有一個propertyfile的target,如下面程式碼所示:

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


<project name="ant-jmeter-test" default="all" basedir=".">
<tstamp>
<format property="time" pattern="MM-dd-hh-mm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目錄--> 
<property name="jmeter.home" value="${jmeter.home}" />
<property name="jmeter.dir" value="${jmeter.dir}"/>                        <!--"C:\Program Files (x86)\Jenkins\workspace" /-->
<!-- jmeter生成jtl格式的結果報告的路徑--> 
<property name="jmeter.result.jtl.dir" value="${jmeter.result.jtl.dir}" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="${jmeter.result.html.dir}" />
<!-- 生成的報告的字首--> 
<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" />
<!-- 接收測試報告的郵箱-->
<!-- <property name="mail_to" value="
[email protected]
" /> --> <!-- 電腦地址 --> <!-- <property name="ComputerName" value="gxx" /> --> <target name="all"> <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.jtl.dir}/${ReportName}${time}.jtl"> <!-- 宣告要執行的指令碼。"*.jmx"指包含此目錄下的所有jmeter指令碼--> <testplans dir="${TestScript-path}" includes="${TestScript}" /> <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"> <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> <path id="xslt.classpath"> <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> </path> </project>

每個key-value對都通過屬性值對應起來。

3.配置jenkins平臺,新建任務,如下面的流程

1.    新建任務>>>(通過複製之前的專案快速)構建新專案

http://localhost:108/

2.    配置>>>修改general模組下的字元引數

1.jmeter.result.jtl.dir----生成的jtl存放地址

D:\Jmeter\jenkins-2.104install-file\workspace\ Dishui\jtl)

2. jmeter.result.html.dir----生成的jenkins report html存放地址

D:\Jmeter\jenkins-2.104install-file\workspace\ Dishui\html>>這裡是為了jenkins生成report)

3. jmeter.result.html.dir2----生成的html存放地址

D:\Jmeter\jenkins-2.104install-file\workspace\ Dishui\html2

4. TestScript-path----測試的指令碼路徑

D:\Documents\Desktop\gxx-資料\14.Jmeter\jmeter&excel介面自動化\script

4. TestScript ----測試的指令碼檔名稱

介面自動化指令碼模板.jmx

 




3.配置>>>修改構建模組下的ant-build.xml路徑(這裡,每一次build.xml都要和測試指令碼放在一起)


4.配置>>>修改構建後操作模組—html report的生成路徑(html檔名要和build.xml檔案裡的檔名保持一致)








4.新專案新建號以後,開始構建


5.檢視控制檯和HTML report,檢視執行結果

備註:郵件部分的程式碼:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日誌-地稅新版1</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
    <tr>
        <td>(本郵件是程式自動下發的,請勿回覆!)</td>
    </tr>
    <tr>
        <td><h2>
                <font color="#0000FF">構建結果 - ${BUILD_STATUS}</font>
            </h2></td>
    </tr>
    <tr>
        <td><br />
        <b><font color="#0B610B">構建資訊</font></b>
        <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td>
            <ul>
                <li>專案名稱 : ${PROJECT_NAME}</li>
                <li>構建編號 : 第${BUILD_NUMBER}次構建</li>
                <li>觸發原因: ${CAUSE}</li>
                <li>構建日誌: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                <li>構建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
                <li>工作目錄 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                <li>專案  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><b><font color="#0B610B">Changes Since Last
                    Successful Build:</font></b>
        <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td>
            <ul>
                <li>歷史變更記錄 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
            </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="    %p"}
        </td>
    </tr>
    <tr>
        <td><b>Failed Test Results</b>
        <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td><pre
                style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre>
            <br /></td>
    </tr>
    <tr>
        <td><b><font color="#0B610B">構建日誌 (最後 100行):</font></b>
        <hr size="2" width="100%" align="center" /></td>
    </tr>
    <!-- <tr>
        <td>Test Logs (if test has ran): <a
            href="${PROJECT_URL}ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip">${PROJECT_URL}/ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip</a>
            <br />
        <br />
        </td>
    </tr> -->
    <tr>
        <td><textarea cols="80" rows="30" readonly="readonly"
                style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
        </td>
    </tr>
</table>
</body>
</html>
建議參考http://www.cnblogs.com/yangxia-test/p/4354328.html

相關推薦

jmeter指令碼整合jenkins平臺antbuild.xml檔案程式碼

1.寫好jmeter指令碼   xxxx.jmx2.寫好ant外掛的build.xml指令碼,如下:Ant這個外掛可能是我們最為經常使用的,若構建指令碼是使用build.xml的,那構建引擎肯定會選擇ant。因此編譯打包我都選擇了ant進行。通過master-slaver這種

Jenkins+Jmeterjmeter指令碼執行執行失敗jenkins構建成功

搭建了一套介面自動化環境,一鍵構建執行介面指令碼,生成測試報告,失敗情況下,傳送郵件通知相關人員。基本思路是這樣的,但是,遇到了一個問題,瀏覽測試報告格式及檢視相關內容是否正確的過程中,發現有測試用例failure的情況,並沒有傳送郵件給相關人員。1、查詢問題檢視jmeter

SparkStreaming(9)例項-Streaming整合Spark SQL進行wordcount功能

1.功能實現      綜合Spark Streaming和Spark SQL,進行word count的統計。核心理解DStream和RDD相互操作,需要通過使用foreachRDD這個API。 2.程式碼 package Spark import or

效能測試jmeter進階之beanshell

    * BeanShell是一種完全符合Java語法規範的指令碼語言,並且又擁有自己的一些語法和方法; * BeanShell是一種鬆散型別的指令碼語言(這點和JS類似); * BeanShell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java原始碼直譯器,

Spring Boot 2.0()Spring Boot 整合 Memcached

Memcached 介紹 Memcached 是一個高效能的分散式記憶體物件快取系統,用於動態Web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提高動態、資料庫驅動網站的速度。Memcached基於一個儲存鍵/值對的hashmap。其守護程序(daemon )是用C寫的,但

效能測試十jmeter分散式

  一臺壓力機產生得壓力是有限的,尤其是jmeter,java本來效能就不是很好,併發特別多的時候,jmeter的效能會急劇下降,正常的介面,若單臺壓力機,超過1000併發以後,jmeter的效能就不怎麼行了    所以需要多個壓力機,即多個機器部署jmeter產生壓力 分散

性能測試jmeter進階之beanshell

stp 獲取 esp 不用 uid 精簡 response 下載 嵌入 * BeanShell是一種完全符合Java語法規範的腳本語言,並且又擁有自己的一些語法和方法; * BeanShell是一種松散類型的腳本語言(這點和JS類似); * BeanShell是用Jav

() 構建dubbo分布式平臺-maven構建ant-framework核心代碼annotatio

springmvc dubbo zookeeper mybatis j2ee 上一篇我們介紹《構建dubbo分布式平臺-maven構建ant-framework框架的pom.xml文件配置》,子項目的基礎框架已經構建完成,今天重點講解的是ant-framework核心代碼的編寫過程。 其中

第一篇UE4如何輸出全景圖自定義截圖

首先,向大家介紹一下UE4的兩種輸出全景圖的方法,一種是利用UE4自帶的輸出外掛,一種是NVIDIA的外掛 一、UE4自帶外掛 1、開啟Edit——>Plugins,選擇Stereo Panoramic Movie Capture外掛匯入 2、執行專案,

雲棲專輯 | 阿里開發者們的第3個感悟從身邊開源開始學習用過才能更好理解程式碼

2015年12月20日,雲棲社群上線。2018年12月20日,雲棲社群3歲。 阿里巴巴常說“晴天修屋頂”。 在我們看來,寒冬中,最值得投資的是學習,是增厚的知識儲備。 所以社群特別製作了這個專輯——分享給開發者們20個彌足珍貴的成長感悟,50本書單。 多年以後,再回首2018-19年,留給我們自

Jmeter+Ant執行build.xml常見錯誤前言不允許有內容

build.html<?xml version="1.0" encoding="UTF-8"?><project name="ant-jmeter-test" default="run" basedir='.'>       <tstamp>

java解析xml檔案的五種常見方法DOM4JdompullSAXJdom

package com.zhidi.dom4jtest; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import or

高校人工智慧教育需要中國專屬的資料科學平臺鯨科技K-Lab為此而生

第四次工業革命正在來臨,人工智慧已經從科幻逐步走入現實。自從2016年AlphaGo戰勝李世石後,全球對於人工智慧發展的興奮與擔憂交織難分。即使如此,世界各國已經認識到人工智慧是未來國家競爭的關鍵賽場,紛紛開始部署人工智慧發展戰略,以期佔領新一輪科技革命的歷史高點。對於中國而言,人工智慧的發展是一個

python練習假設s是一個字串返回s十進位制數字之和。例如如果s是‘a2b3c’則返回5。

python練習:假設s是一個字串,返回s中十進位制數字之和。例如,如果s是‘a2b3c’,則返回5。 重難點:字串轉化為字元序列。in的多種應用。try-except程式碼塊的使用。 1 print("————————————————————————————") 2 def sumDigits

easyui行編輯利用append row新增行直接在行編輯ajax提交儲存

今天工作用到了easyui行編輯,在這裡總結一下,不會的同學可以看看,順便吐槽一下,網上的很多部落格都是貼上複製的,內容很亂 ,而且看不懂,不知道這些貼上複製的懷的是什麼心,不但沒用,還影響別人搜尋。 呼籲大家在寫部落格的時候認真一些,別隻貼上複製,至少可以自

spring mvc高階篇():Spring+SpringMVC+Mybatis整合(採用泛型註解優化)

8.1整合思路分析 用Spring對MyBatis進行整合,將使得采用MyBatis操作資料庫更加方便和簡單。由於Spring 3的開發在MyBatis 3官方釋出前就結束了,Spring開發團隊不想釋出一個基於非釋出版本的MyBatis的整合支援,因此Spring 3沒有

jenkins安裝構建第一個工程(更新程式碼到工作空間)

1.安裝jenkins 第一種方式:可以再windows系統通過安裝包的方式直接安裝 第二種方式:下載jenkins.war,在tomcat執行,linux系統和windows系統都

程式設計師面試100題之不要被階乘嚇倒(二進位制表示最低位1的位置 )

http://blog.csdn.net/hackbuteer1/article/details/6690015 階乘(Factorial)是個很有意思的函式,但是不少人都比較怕它,我們來看看兩個與階乘相關的問題: 1、 給定一個整數N,那麼N的階乘N!末尾有多少個0

SpringBoot2 整合 Zookeeper元件管理架構服務協調

本文原始碼:GitHub·點這裡 || GitEE·點這裡 一、Zookeeper基礎簡介 1、概念簡介 Zookeeper是一個Apache開源的分散式的應用,為系統架構提供協調服務。從設計模式角度來審視:該元件是一個基於觀察者模式設計的框架,負責儲存和管理資料,接受觀察者的註冊,一旦資料的狀態發生變化,Z

springboot多模組專案引用子專案的mapperxml檔案

springboot多模組專案,引用子專案的mapper中的xml檔案,一直引用不到, 提示: Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): utopi