jmeter+ant+Jenkins持续集成自动化测试

一、环境准备
jdk,jmeter,jenkins,ant
Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
Jenkins下载地址:https://www.jenkins.io/download
ant下载地址:http://ant.apache.org/bindownload.cgi
JDK下载地址:htps://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
jmeter的环境变量配置
1.新增系统变量JMETER_HOME,值为安装路径
在这里插入图片描述
2.新增系统变量JAVA_HOME,值为安装路径
在这里插入图片描述
3.新增系统变量ANT_HOME,值为安装路径
在这里插入图片描述
4.编辑系统变量CLASSPATH,值中新增%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib
在这里插入图片描述
5.编辑PATH,值中新增%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANT_HOME%\bin
在这里插入图片描述
二、jmeter+ant集成
1.下载安装ant并配置其系统变量
在命令行窗口输入ant -v检查是否安装成功
2.文件配置
2.1、配置库文件
将jmeter extras目录下的ant-jmeter-1.1.1.jar文件拷贝到ant安装目录下的lib文件夹中
2.2、配置ant的编译文件build.xml(新建build.xml文件)
任意新建一个脚本存放目录:E:\jmeter\AutoTest,以及报告存放目录report
在这里插入图片描述
在这里插入图片描述
代码如下:

<?xml version="1.0" encoding="utf-8"?>
<project name="JmeterTest" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="D:\apache-jmeter-5.4" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="D:\jenkins\workspace\report\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="D:\jenkins\workspace\report\html" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
    <!-- 接收测试报告的邮箱 -->
    <property name="mail_to" value="[email protected]" />
    <!-- 电脑地址 -->
    <property name="ComputerName" value="jkqsh-l0285" />
    <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:\jenkins\workspace\接口测试" includes="*.jmx" />
        </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.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>
	<path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>
</project>

2.3、配置jmeter.propertise文档
进入jmeter安装目录下/bin目录,打开jmeter.propertise文档并编辑,修改jmeter报告输出格式为xml
修改jmeter.save.saveservice.output_format=xml
3、完成配置,执行构建测试
将之前的jmeter的脚本保存,并将build.xml配置文件放在与测试脚本相同的目录下
cmd进入脚本目录:E:\apache-jmeter-2.13\AutoTest。(即build.xml所在的目录)
输入ant构建成功
在第一次构建时构建失败并报错
构建失败报错
此报错解决:原因是因为ant的两个jar包未在指定的路径进行path配置,需在build.xml中添加如下代码

	<path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>

3.1、优化测试报告
下载模板:http://shanhe.me/download.php?file=jmeter.results.shanhe.me.xsl
3.1.1 拷贝到jmeter的extras目录中
3.1.2 设置测试输出报告要输出的内容:在jmeter的bin目录下jmeter.properties中,设置需要输出的内容为true,并去掉前面的注释符号#
在这里插入图片描述
3.1.3 设置build文件的报告模板为优化后的模板jmeter-results-shanhe-me.xsl
在这里插入图片描述
3.1.4 再次用ant构建测试,查看优化后的测试报告
在这里插入图片描述
三、jmeter+ant+Jenkins持续集成
1.官网下载地址:https://www.jenkins.io/download/
一键安装后访问本地地址:http://localhost:8080/
增加一个用户,并在用户页点击设置,修改密码后才能生效
安装插件HTML Publisher、Ant In Workspace、Email Extension Template 在这里插入图片描述
2.新建视图,点击确定后保存
在这里插入图片描述
3.在视图中新建任务
输入任务名称并选择自由风格的软件项目,点击ok
在这里插入图片描述
4.配置构建
在这里插入图片描述
5.配置报告
这个插件不会帮你产生任何的html文件,只是把你workspace下对应项目产生的文件复制到对应的jobs目录下
HTML directory to archive :采用的是相对路径,这个对应的是当前jenkins的对应jobs目录下
Index pages:集成在jenkins中测试报告的名称
Report title:显示在Jenkins下的名称
在这里插入图片描述
要想直接在Jenkins中查看报告,则需要每次生成一个固定的报告名称,新的覆盖旧的,即不要在html报告中加时间戳,在build.xml中将时间戳去掉
在这里插入图片描述
生成测试报告
在这里插入图片描述
6.开始构建
在这里插入图片描述
ant构建项目,默认执行的是Jenkins中workspace下的脚本,如果workspace下没有脚本则构建会报错
6.1通过Jenkins-系统管理-系统设置-主目录查看Jenkins目录 在这里插入图片描述
6.2修改workspace路径
6.2.1.找到Jenkins安装根目录,寻找config.xml文件
在这里插入图片描述 6.2.2在config.xml文件内,查找 workspaceDir 关键字,将你的自定义 工作空间根目录 地址替换默认的地址
在这里插入图片描述
6.2.3重启使配置文件生效
使用msi安装的Jenkins,需运行 Jenkins的命令来重新读取配置,在系统管理中点击读取设置重启Jenkins
在这里插入图片描述
6.3、构建时报’ant.bat’ 不是内部或外部命令,也不是可运行的程序
6.3.1进入系统管理-全局工具配置
在这里插入图片描述
6.3.2进入任务配置重新配置Invoke Ant
在这里插入图片描述
6.4在项目主页点击立即构建
在这里插入图片描述
6.5打开测试报告存放路径查看生成的报告
四、每次构建后发送报告至邮箱
1.进入系统管理-系统设置,配置Extended E-mail Notification–“高级”
在这里插入图片描述
在这里插入图片描述
通过发送测试邮件测试配置
在这里插入图片描述
2.进入项目配置-增加构建后操作
在这里插入图片描述
在这里插入图片描述
在邮件内容Default Content中附上邮件模板

<!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">  
    <h3>以下是Jenkins自动发送的邮件,请勿回复!</h3>
    <div>
    <table width="95%" cellpadding="0" cellspacing="0" 
        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> 
        <tr>
            <th><br />
                <h2>构建信息</h2> 
            </th>
        </tr>
        <tr>  
            <td>  
                <ul>  
                    <li>项目名称 : ${PROJECT_NAME}</li><br />  
                    <li>构建日志 :<a href="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</a></li><br /> 
                    <li>触发原因: ${CAUSE}</li><br />                    
                    <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li><br />  
                </ul>  
            </td> 
        </tr>  
    </table> 
    </div>
    <div>
    <table> 
        <tr>  
            <th><br />
            <h2>测试报告</h2>
            </th>  
        </tr>

        <tr>
            <td>
                <li>测试报告: <a href="${PROJECT_URL}/HTML_20Report">${PROJECT_URL}/HTML_20Report</a></li>               
            </td>
        </tr>

    </table> 
    </div>
     
  </body>  
</html>

猜你喜欢

转载自blog.csdn.net/test_number1/article/details/113860639