jmeter+ant+Jenkins环境搭建和闭坑指南

动手搭建了Jenkins+ant+jmeter测试环境,遇到了不少的坑,度娘上找了很多方法,总结如下:

以下内容部分转载自CSDN博主「认知觉醒」的原创文章。
原文链接:https://blog.csdn.net/m0_37577255/article/details/114643416

一、搭建目的:通过Jenkins+ant自动构建执行jmeter脚本,生成测试报告并自动发送邮件到指定邮箱。

jenkins: 是开源的、提供友好操作界面的持续集成工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。jenkins用java语言编写,可在Tomcat等流行的servlet容器中运行,也可以独立云溪。通常与版本管理工具(SVN,GIT)、构建工具(MAVEN,ANT,GRADLE)结合使用。

ant: apache ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的工具。Ant是纯java语言编写的,具有跨平台性。Ant运行时需要一个XML文件(构建文件),Ant通过调用target树,可以执行各种task,每个task实现了特定接口对象,它很容易集成到开发环境中去。
jmeter:

apache jmeter: 是基于java的压力测试工具。

整体过程理解如下

二、搭建步骤:

依次安装jmeter、ant、jenkins

1、搭建环境

JDK:11.0.15

Jmeter:3.0

Ant:1.9.16

Jenkins:Jenkins-war:2.367

注意:安装Jenkins不要使用Jenkins.msi安装,要使用Jenkins.war安装。

   另外,如果使用的是jdk11版本,需要修改jmeter的运行文件,即/bin/jmeter.bat,将默认jdk版本修改成11.0.15

 

 

 

2、jmeter安装

jmeter解压之后,配置环境变量后就可以使用。

下载地址:https://archive.apache.org/dist/jmeter/binaries/

 

2.1、解压

 

 

 

2.2、配置环境变量

1)新建:JMETER_HOME ,变量值输入:E:\apache-jmeter-3.0

2)环境变量:CLASSPATH,添加
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;

3)环境变量:Path,添加 %JMETER_HOME%\bin


4)测试 jmeter -v

 

 

 3、Ant安装

Ant解压之后,配置环境变量后就可以使用。

下载地址:https://blog.csdn.net/m0_37577255/article/details/114643416

 

 

 

 3.1、解压

 

 

 3.2、配置环境变量

1)新建环境变量 ANT_HOME ,变量输入:D:\Program Files\apache-ant-1.9.16

 

 

 

2)环境变量 PATH添加,%ANT_HOME%\bin
在这里插入图片描述

3)测试 ant -v

 

4、ANT、JMETER其它设置
1、 jmeter结果文件默认保存的是.csv格式的文件,因为后面要生成html,所以要修改下默认配 置,修改文件“E:\apache-jmeter-3.0\bin\jmeter.properties”,设置:jmeter.save.saveservice.output_format=xml

 

 

 

2、 将apache-jmeter-5.4.1_A5\extras\ant-jmeter-1.1.1.jar拷贝到“\apache-ant-1.10.9\lib\”下


3、 在E:\apache-jmeter-3.0下新建JmeterSpace目录,
Script 目录用来存放需要执行的jmeter脚本。如abc.jmx测试文件和build.xml文件

 


ResultLog\html 目录存放生成的html文件,只需要在ResultLog下创建html空文件夹即可。


ResultLog\jtl 目录存放生成的jtl文件,只需要在ResultLog下创建jtl空文件夹即可。

4、创建built.xml,配置如下

代码不可照搬照用,有些地方需要修改成你自己本地的路径。

<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter" default="run" basedir=".">
    <property name="jmeterPath" value="E:\apache-jmeter-3.0"/>   
    <tstamp><format property="time" pattern="yyyyMMddHHmm" /></tstamp>
    
    <!-- jmeter环境配置 -->
    <property name="jmeter.home" value="E:\apache-jmeter-3.0"/>
    <!-- jtl测试结果存放路径 -->
    <property name="jmeter.result.jtl.dir" value="E:\apache-jmeter-3.0\JmeterSpace\ResultLog\jtl"/>
    <!-- html测试结果存放路径 -->
    <property name="jmeter.result.html.dir" value="E:\apache-jmeter-3.0\JmeterSpace\ResultLog\html"/>
    <property name="htmlReportNameSummary" value="TestReport"/>
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}.jtl"/>
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}.html"/>

    <target name="run">
        <antcall target="test"/>
        <antcall target="report"/>
		<antcall target="mail"/>
    </target>
       
    <!-- 执行接口测试 -->
    <target name="test">
        <echo>执行接口自动化测试用例</echo>
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 声明要运行的脚本“*.jmx”指包含此目录下的所有jmeter脚本-->
            <testplans dir="E:\apache-jmeter-3.0\JmeterSpace\Script" includes="*.jmx" />
             <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
	
    
    <!-- 解决报告中NAN字段显示问题-->
    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar" />
        <fileset dir="${jmeter.home}/lib" includes="serializer-2.7.2.jar" />    
    </path>
    
    <target name="report">
        <echo>生成接口自动化测试报告</echo>
            <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.xsl"  >
                  <param name="titleReport" expression="接口自动化测试报告${time}"/> 
                  <param name="dateReport" expression="${report.datestamp}"/>
            </xslt>    
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->  
            <copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.html.dir}/expand.png" />
            <copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.html.dir}/collapse.png" />
            
    </target>
	
	<target name="mail123">
		<echo>这是测试部分</echo>
	</target>
	
	<!--自动发送测试报告到指定邮箱 -->
	<property name="mail_from" value="ABC@139.com" />
	<property name="password" value="XXXXXXXXX" />
	<!--mail_to:收件人列表,多个收件人之间使用都好间隔 -->
	<property name="mail_to" value="ABC@139.com" />
	<property name="mailport" value="25" />
	<!--邮箱需要开通smtp服务 -->
	<property name="mailhost" value="smtp.139.com" />
	<target name="mail">
		<echo>发送测试报告</echo>
		<loadfile property="report" srcFile="${jmeter.result.htmlName}" encoding="UTF-8" />
		<mail from="${mail_from}" tolist="${mail_to}" mailport="${mailport}" mailhost="${mailhost}" user="${mail_from}" password="${password}" subject="jmeter 测试报告" messagemimetype="text/html">
			<message>			
						本轮构建的结果如下:
						${report}
			</message>
		</mail>
	<!--<delete file="${jmeter.result.htmlName}" />-->
	</target>
</project>

  代码说明:

5、测试jmeter+ant

在E:\apache-jmeter-3.0\JmeterSpace\Script打开cmd

6、查看执行结果

在配置完build.xml后,测试发送邮件功能时,遇到2个问题,一个是由于缺少相应的jar包,另外一个是由于smtp端口号写的是带ssl的,应该写成不带ssl的,我使用的是139邮箱,所以端口号改成25就可以了。

问题一

2、在网站上下载commons-email.jar包,然后放在 ant 的 \lib 目录下

3、在网站上下载activation-1.1.1.jar包,然后放在 ant 的 \lib 目录下

4、在网站上下载javax.mail.jar包,然后放在 ant 的 \lib 目录下

然后在这三个网站分别下载对应的插件放到ant的lib目录下

还有要注意build.xml中配置的邮箱的password不是邮箱密码,而是授权码

 

问题二、

解决办法:将端口号改成不带ssl的,我使用的是139邮箱,改成25就可以了。

 

JENKINS安装
下载地址:https://get.jenkins.io/war-stable/2.263.3/

 

 


1、将下载的war包放入到D:\jenkins目录下,在该目录下执行cmd,启动jenkins.war包
java -jar jenkins.war


2、默认端口是8080,启动成功后,访问http://localhost:8080/

 

 

 

 

 


密码可以从路径找,也可以从控制台找

 

 


这边选了了安装推荐插件,安装需要一段时间,耐心等待安装完


更具体的安装步骤,可百度查找。

安装完成后,检查是否有这几个插件:Ant Plugin,Performance plugin,HTML publisher plugin,Groovy,若没有则依次安装
安装插件步骤
首页点击系统管理Manage Jenkins->管理插件Manage Plugins

 

 


在可选插件里搜索 上述几个插件的名称,例如 Groovy

 

 

 

上述jenkins准备就绪,开始配置项目。
1、新建item>Freestyle project,创建一个自由风项目

 

 


2、general,源码管理使用默认无,构建触发器,环境搭建使用默认空,

 

 

 

3、构建:增加Invoke Ant

 

 


Ant Version选择,选择前需先在全局工具配置里面配置好
Jenkins配置全局工具ANT
点击Manage Jenkins>Global Tool Configuration
Ant >新增Ant

 

 


Name: 确定ant名称
ANT_HOME: 配置ANT的安装路径,D:\software\apache-ant-1.10.9
应用,保存。
Targets: build.xml文件里标签维护的name:“run”

 

 


Build File: ant 构建文件build.xml的文件路径:D:/software/apache-jmeter-5.4.1_A5/JmeterSpace/build.xml
4、构建:新增Execute Grooxy script(解决Jenkins,查看配置HMTl测试报告样式丢失,未加载JS和CSS问题)
在Grooxy script ,输入命令:

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

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

 


5、构建后操作:增加构建后操作步骤Pubulish Performance test result report

 

 

 

 

 


Source data files (autodetects format): 生成的jtl文件路径,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\jtl\TestReport.jtl(现在还是固定一个文件,这边能到目录,还未尝试),
StandModle: 生成的jtl文件内容格式

 

 


6、构建后操作:增加构建后操作步骤Pubulish HTML reports
HTML directory to archive: 生成的html文件路径,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\html
index pages: *.html展示所有的html文件

 

 

 


7、保存,执行构建

 

 

 

可在控制台看到执行过程中输出的log日志
8、查看生成的html结果
点击HTML Report

 

 

在下载Jenkins需要的插件时,如ant,如果通过默认的下载源下载,会下载失败,需要修改下载源,修改下载源,需要修改2个地方

1、是修改插件管理的升级站点URL,修改后内容https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

 

 2、修改default.json

updates.jenkins-ci.org/download替换为mirrors.tuna.tsinghua.edu.cn/jenkins
有些jenkins版本中是将:
updates.jenkins.io/download替换为mirrors.tuna.tsinghua.edu.cn/jenkins
然后把谷歌浏览器修改为百度
www.google.com修改为www.baidu.com

 

 

查看邮箱

 

posted @   维特布朗尼  阅读(1114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示