JMeter+Ant+Jenkins

JMeter+Ant+Jenkins:

编写JMeter测试脚本:



编写Ant 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="C:\JMeter\apache-jmeter-3.3" />
    <!-- jmeter生成的jtl格式的结果报告的路径--> 
    <property name="jmeter.result.jtl.dir" value="C:\Program Files (x86)\Jenkins\workspace\jtl" />
    <!-- jmeter生成的html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="C:\Program Files (x86)\Jenkins\workspace\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}.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="D:\JMeter" 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"
            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>


把测试脚本和构建文件放到这个目录下:


修改jmeter.properties文件中的:


jmeter.save.saveservice.output_format=xml

把JMter中的\extras\ant-jmeter-1.1.1.jar包复制黏贴到Ant里面


配置Ant环境变量:





安装Jenkins for Windows:

防止中文乱码:


JAVA_TOOL_OPTIONS

-Dfile.encoding=UTF8



LANG

zh_CN.UTF-8 

配置JDK与Ant:



配置标记格式器:


配置Jenkins地址与系统管理员邮箱:


配置邮件服务:



创建项目:


先删除旧的文件:

del "C:\Program Files (x86)\Jenkins\workspace\html"\***.html
del "C:\Program Files (x86)\Jenkins\workspace\jtl"\***.jtl

启用CSS和JS渲染:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")


在D盘执行ant命令:

Ant

run

D:\JMeter\build.xml


C:/Program Files (x86)/Jenkins/workspace/html

TestReport.html

HTML Report


C:/Program Files (x86)/Jenkins/workspace/jtl/*jtl




邮件内容:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</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>
                <font size="8" color="#FF0000">测试报告</font><br/>
                <li>${FILE, path="C:/Program Files (x86)/Jenkins/workspace/html/TestReport.html"}</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>



好了,所有的配置都完成了,点击立即构建,等待几秒钟,打开QQ邮箱:


也可以直接打开TestReport.html文件



也可以在Jenkins面板查看:


Jenkins需要安装的插件有:

Maven Integration
GitLab
Git Parameter
OWASP Markup Formatter
Email Extension
HTML Publisher
Performance
Groovy
TestNG Results
Publish Over SSH
Git Changelog
Dingding[钉钉] 

猜你喜欢

转载自blog.csdn.net/yjlch1016/article/details/78378384
今日推荐