jmete+ant+jenkins持续集成

本文详细介绍了如何在Debian 9.6和Redhat系统上配置JMeter、Ant以及Jenkins进行持续集成。首先,通过wget下载并安装JMeter和Ant,配置环境变量,编写JMeter脚本和Ant的build.xml文件。接着,安装Jenkins,下载并配置相关插件,如Email Extension Plugin,同时设置系统邮箱。然后,创建Jenkins job,调用Ant任务执行测试,并设置邮件通知。在遇到问题时,如JAVA_HOME未定义,通过Jenkins全局工具配置解决。最后,设置定时任务,使测试每五分钟执行一次,实现持续集成的目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文基于debian9.6,redhat及其他linux命令可能略有不同。

一.配置jmeter和ant

a.使用wget命令下载jmeter和ant,并将其解压;
b.配置jm和ant环境变量;
c.准jmeter脚本;
d.设置build.xml

进入ant的bin目录下,用vi打开并编辑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="/home/bangbang/CI/apache-jmeter-5.0" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="/home/bangbang/CI/result" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="/home/bangbang/CI/result" />
    
    <!-- 生成的报告的前缀-->
    <property name="ReportName" value="Report" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/Report${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/Report${time}.html" />
    <!-- 输出生成的报告名称和存放路径-->
    <echo message="${jmeter.result.jtlName}"/>
    <echo message="$JMeterTask{jmeter.result.htmlName}"/>
    <echo message="${jmeter.result.html.dir}"/>

    <target name="all" depends="run,report"/>

    <target name="run">

    <!--加载jar包,解决显示时间问题-->  
    <path id="xslt.classpath">  
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
	<fileset dir="${jmeter.home}/extras" includes="ant-jmeter*.jar"/>  
    </path> 
    </target>
    
    <target name="test">
        <taskdef
        name="jmeter"
        classpathref="jmeter.classpath"
        classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
            <testplans dir="/home/bangbang/CI/apache-jmeter-5.0/extras" includes="Test.jmx" />
            
            <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.shanhe.me.xsl">
              <!--显示dateReport的时间--> 
              <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>

二.安装配置jenkins

https://www.jianshu.com/p/845f267aec52

三.配置jenkins

a.下载jenkins插件

进入Manage Jenkins->Manage Plugins,下载插件Email Extension Plugin、 Email Extension Template Plugin。下载完成后需要重启jenkins。
1
报告

b.配置系统邮箱

进入Manage Jenkins->System Configure,找到Extended E-mail Notification和E-mail Notification,按照下图设置:



note: qq邮箱测试报401,此错误是因为qq邮箱未开启smtp服务,登录网页版qq邮箱,进入设置->账户,找到POP/IMAP…服务,开启POP3或IMAP服务,上图中的密码需输入此处的授权码。我在使用163邮箱,提示554 DT,在163网站上查看错误提示,是因为测试邮箱包含"Test"等字样,导致系统将邮件判断未垃圾邮件。

c.配置job

1.进入New Item->输入item name->Freestyle project->点击OK
创建job

2.找到build,Add build step,选择Invoke Ant,Targets与build.xml的target一致,Build File填写本地build.xml路径。

3.Post-build Actions->Add post-build actions-> E-mail Notification

4.Add post-build actions-> Editable Email Notification->Attachments,填入jmeter生成html报告的地址**/*.html,其他选项暂时默认

5.点击Advanced Settings,Triggers->Send to列表中,add Recipient List,Recipient List中,填写接收报告的邮箱地址,若要填写多个邮箱,中间用","隔开。Attachments一栏和上面一样。
在这里插入图片描述
保存,退出,回到jenkins主页面,build刚才建立的项目。
在这里插入图片描述

运行报错,JAVA_HOME is not defined correctly,这是因为在jenkins未指定java:
在这里插入图片描述

解决方法:
进入Manage Jenkins->Global Tool Configuration->JDK->Add Jdk,取消install automatically,手动设置java home。
在这里插入图片描述

相同的方法,设置ant home。

再次回到jenkins主页,build项目,可以看到,这次运行jmeter脚本成功了,
在这里插入图片描述查看Console Output开头,发现一个error,

java.io.FileNotFoundException: jmeter.log (Permission denied) java.io.FileNotFoundException: jmeter.log (Permission denied)
```jmeter log 是权限问题 ,我是将jmeter文件放在了/home/{usr}/CI的目录下,用户 jenkins无权限执行这个文件。
解决方法:
	进入${jmeter_home}/bin目录下,将jmeter.log的执行权限给jenkins用户, sudo chown jenkins.jenkins jmeter.log。

查看邮件,发现jenkins发送的报告里面,并没有附件报告,上面配置email中的Attachments,该Attachments是以workpase为基本路径,这里采用粗暴简单的方法解决这个问题,将build.xml中生成报告的路径,修改为jenkins的workspace的路径。如下:

<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="/var/lib/jenkins/workspace/{你的项目名称}" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="/var/lib/jenkins/workspace/{你的项目名称}" />

最后运行项目:
在这里插入图片描述
在这里插入图片描述

三.设置定时任务
进入创建的项目->Build Triggers->勾选Build periodically,我这里设置的是此任务每五分钟执行一次,* * * * * 分别表示分时天月年。
linux定时任务设置:
http://qa.taobao.com/?p=9189

在这里插入图片描述
在这里插入图片描述
至此,jmete+ant+jenkins持续继承做测试就算完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值