基於jmeter,jenkins,ANT介面,效能測試框架

YatHo發表於2016-11-18

背景

公司計劃推介面和效能測試,搭建這個效能測試框架框架是希望能夠讓每個人(開發人員、測試人員)都能快速的進行效能,介面測試,而不需要關注效能測試環境搭建過程。因為,往往配置一個效能環境可能需要很長的時間。

 

該框架搭建 基於Jmeter和Jenkins搭建效能測試框架 和 jenkins+ANT+jmeter 介面測試環境搭建 演化過來。

 

Jmeter GUI上制定測試計劃

Thread Group

用函式__P()設定屬性名和預設值的形式設定這三個屬性,以方便在使用no-GUI模式啟動Jmeter進行測試時,使用–jmeterproperty選項對屬性值進行賦值。

CSV Data Set Config

併發數配置

HTTP Request

HTTP Request關聯

jenkins呼叫command non-GUI方式執行Jmeter

 

set RUNFOLDER=%WORKSPACE%
set JMETERBIN=D:\Devlop\jmeter\apache-jmeter-2.7\bin
set JMETERLIB=D:\Devlop\jmeter\apache-jmeter-2.7\lib
set RESULTJTL=%RUNFOLDER%\result.jtl
set TRANSJTL=$RUNFOLDER\trans.jtl
set EXCELJTL=$RUNFOLDER\execl.jtl
del -f -s -Q %RUNFOLDER%\*.jtl
del -f -s -Q %RUNFOLDER%\Report\*



jmeter -n -t jmx\*.jmx -l result.jtl --jmeterproperty threadCount=%CONCURRENCY% --jmeterproperty LoopCount=%LOOPCOUNT% --jmeterproperty RampUp=%RAMPUP% --jmeterproperty jenkins_workspace=%WORKSPACE%

  呼叫ANT生成html報告

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

<project name="ant-jmeter-test" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目錄-->
    <property name="jmeter.home" value="D:\Devlop\jmeter\apache-jmeter-2.7" />
    <!-- jmeter生成jtl格式的結果報告的路徑-->
    <property name="jmeter.result.jtl.dir" value=".\" />
    <!-- jmeter生成html格式的結果報告的路徑-->
    <property name="jmeter.result.html.dir" value=".\Report" />
    <!-- 生成的報告的字首 -->
    <property name="ReportName" value="result" />

	<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
	<!-- Diffrent version of Jmeter has its own ant-jmeter.jar,Please input the right versioin -->
	<path id="ant.jmeter.classpath">
	<pathelement location="${jmeter-home}/extras/ant-jmeter-1.1.1.jar" />
	</path>
	<!-- use this config to generate html report; if not, may not display Min/Max Time in html-->
	<path id="xslt.classpath">
	<fileset dir="${jmeter.home}/lib" includes="xalan-2.7.1.jar"/>
	<fileset dir="${jmeter.home}/lib" includes="serializer-2.7.1.jar"/>
	</path>
	
    <target name="report">
        <xslt in="${jmeter.result.jtlName}"
              out="${jmeter.result.htmlName}" classpathref="xslt.classpath"  
              style="${jmeter.home}/extras/jmeter-results-detail-report_30.xsl.xml" />
		<xslt in="${jmeter.result.jtlName}"
              out="${jmeter.result.html.dir}\TestLog.html" classpathref="xslt.classpath"  
              style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl" />

        <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 -->
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
</project>

  

推送HTML報告

 

jenkins執行介面

檔案jmx和build只需提交預設提供檔案

最終使用者只需要使用excel修改csv用例資料就可以進行進口和效能資料的採集

 

 執行結果

 執行結果同前面兩個方案一致,不再補充

相關文章