ant+jmeter+jenkins接口自动化环境搭建
一、安装前准备
1.JDK:jdk-8u131-windows-x64
2.jmeter工具:apache-jmeter-5.1.1
3.ANT工具:apache-ant-1.10.3
4.jenkins工具:jenkins-2.32.2
以上安装包工具及版本下载地址:https://pan.baidu.com/s/1ReeFHN14-YXLpZl93QgMzQ
提取码:w65h
二、软件安装
1.JDK的安装
>双击JDK安装包,选择安装路径(为了节省C盘系统盘空间,不建议选择默认路径)。
1)系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 C:\Program Files\Java\jdk1.8.0_131);
2)系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
3)系统变量→新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)
系统变量配置完毕
4)检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)
若如图所示 显示版本信息 则说明安装和配置成功。
2.jmeter软件安装
1)解压apache-jmeter-5.1.1.zip到E:\apache-jmeter-5.1.1目录下。
2)Jmeter插件的安装。
3)下载Plugins Manager
https://jmeter-plugins.org/install/Install/
放在E:\apache-jmeter-5.1.1\lib\ext
目录下,然后重启Jmeter,会在菜单-Options选项下多一个 Plugins Manager菜单,打开即可对插件进行安装、升级
4)配置jmeter环境变量:
1) 设置环境变量,新建系统变量在变量名中输入:JMETER_HOME,变量值中输入:E:\apache-jmeter-5.1.1,点击确定即可。
2) 在环境变量CLASSPATH中添加%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;
在环境变量Path中添加%JMETER_HOME%\bin
3) 检验是否配置成功 运行cmd 输入 jmeter
若如图所示 显示版本信息 则说明安装和配置成功
3、安装ANT
1)解压apache-ant-1.10.3.jar到E:\apache-ant-1.10.3目录下;
2)配置ANT环境变量
新建以下环境变量:
ANT_HOME:E:\apache-ant-1.10.3,此为你的ANT安装路径;
设置完成后,点击"确认"来保存。
在环境变量PATH的最后面添加一下内容:
;%ANT_HOME%\bin 注意前面的分号,如果PATH中最后没有分号";"的话要加上,有的话就可去除。
进入cmd命令窗口,输入ant,点击回车按钮
如果出现如下内容,说明安装成功
4、ANT+Jmeter整合
1)将Jmeter所在目录下extras子目录里的ant-jmeter-1.1.1.jar复制到ant所在目录lib子目录之下,ant运行时才能找到
"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,之后可以触发Jmeter脚本
2)建了一个目录E:\apache-jmeter-5.1.1\TestCase,目录中分别建立了html和jtl两个文件夹,之后Ant运行之后将jtl中的文件转换成html中
3)在E:\apache-ant-1.10.3文件中建立一个build.xml文件,build.xml内容如下:
build.xml代码如下
4)进入Dos窗口,cd到目标路径下(我的是E:\apache-jmeter-5.1.1\TestCase),输入命令ant敲回车,运行结束会有success信息提示
5、Tomcat的安装
1)解压apache-tomcat-9.0.22-windows-x64.zip到E:\apache-tomcat-9.0.22目录下;
2)找到目录bin下的startup.bat,启动Tomcat;shutdown.bat:关闭Tomcat。
3)Tomcat配置
配置Tomcat之前要保证jdk已经配置完成。
右击,计算机——属性——高级系统设置——打开环境变量的配置窗口,在系统环境变量一栏点击新建。变量名为TOMCAT_HOME,变量值为Tomcat安装目录,此处为:E:\apache-tomcat-9.0.22。点击确定即可。
在path中加入%CATALINA_HOME%\bin;(注意加的时候在原变量值后加英文状态下的“;”)
确定后你的Tomcat就配置好了,同样要验证是否配置成功,那就运行Tomcat,点击启动(或Start service)后,打开浏览器,敲入http://localhost:8080,如果出现页面,那么配置成功。
6、Jenkins的安装
1)下载jenkins的war包,将下载好的jenkins.war放进tomcat/webapps目录下
2)相关配置
登入http://localhost:8080/jenkins,进入Jenkins初始化页面,第一次启动时间可能有点长,耐心等待。进入成功后会看到如下画面,按提示路径打开密码文件,输入密码:
解锁后又是一长段时间等待,此后可能出现如下图所示界面:
表示无法下载Jenkins插件,可能是因为防火墙导致,而Jenkins插件的安装非常重要,建议FQ。如无法FQ,则选择Skip Plugin Installations跳过插件安装。进入以下页面,设置登陆用户:
设置成功后即进入Jenkins主界面:
创建一个Freestyle project的项目,名称自定义,我创建是名称为Case01
对新建的项目进行构建
在jenjkns工作路径下,找到项目的文件夹
在项目文件夹下新建report文件夹,build.xml文件,jmeter项目放到项目文件夹下
build.xml文件内容如下:
在report文件夹下新建html,jtl文件夹,如下图(html,jtl用来存放构建之后的报告)
系统设置->管理插件->可选插件,对以下插件进行安装
Performance plugin(Jmeter报告需要)
Email Ext Recipients Column Plugin(邮件通知插件)
Email Extension Plugin(邮件通知插件)
因为需要用到ANT和JDK,所以需要在jenkins中添加插件,选择点击“系统管理”,之后在Global Tool Configuration的界面看到ant和jdk选项,然后将自己本地的ANT和JDK地址填写上
配置、测试邮件
>在系统设置中找到Jenkins Locaction项填入Jenkins URL和系统管理员邮件地址,系统管理员邮件地址一定要配置,否则发不了邮件通知。因为邮件通知都是由系统管理员的邮箱发出来的
>>按照如图所示设置即可,本处设置的是QQ邮箱的服务
>>首先在百度中找到SMTP服务器地址和端口号及设置QQ邮箱的POP3/SMTP服务
>配置系统管理员的邮件属性
>>在Extended E-mail Notification点击“高级”
>>配置下图内容
>>在Jenkins中找到邮件通知项,填入以下信息
>>测试邮箱
① 勾选通过发送测试邮件测试配置
② 输入收件邮箱
③ 点击Test configuration按钮
④ 下方显示“Email was successfully sent”,表示发送成功,收件邮箱可以收到一条邮件
>然后进入到具体的某一job中配置邮件通知
在构建下做以下配置
1)配置命令(路径为该项目的路径)
2)配件lncoke Ant
① 点击添加构建步骤
② 选择lncoke Ant进行添加
③ Ant Version 选择Default
④ Build File填写build文件的路径
在构建后操作下做以下配置,点击保存
然后对该项目进行构建,构建成功之后,接收的邮件可以收到邮件信息 build.xml文件如下
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="JmeterTest" default="all" basedir="." >
<description>
Jmeter+ant+jenkins
</description>
<tstamp>
<format property="report.datestamp" pattern="yyyy/MM/dd hh:mm" />
</tstamp>
<!-- 必须放在最前面,可以确保能使用到jenkins平台及系统set的环境变量 -->
<property environment="env"/>
<!-- 临时本地调试脚本使用路径. 点即当前目录-->
<property name="env.WORKSPACE" value="${basedir}" />
<!-- 可以使用jmeter安装的绝对路径,这里引用了set系统环境变量-->
<property name="jmeter.home" value="${env.JMETER_HOME}" />
<!-- 设置脚本的存放目录 -->
<property name="script.dir" value="${env.WORKSPACE}/jmeterScript" />
<!--设置接收报告的邮箱地址,多个以逗号,结束!-->
<property name="mail_to" value="125197291@qq.com"/>
<!-- 设置jmeter测试结果存放目录-->
<property name="jmeter.result" value="${env.WORKSPACE}/result" />
<!--报告名称显示-->
<property name="report.title" value=" Performance Test Summary Report" />
<!-- 报告是否显示失败事务 -->
<property name="show-data" value="y"/>
<!--标签可以定义中文,定义任务标签,需要执行什么任务,就在这里定义-->
<target name="all" depends="run,report"/>
<!-- jmeter运行脚本所调用到的ant的jar类-->
<path id="ant.jmeter.classpath">
<pathelement location="${env.JMETER_HOME}/extras/ant-jmeter-*.jar" />
</path>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="run" depends="backup">
<!--删除标签,delete file 删除文件,delete filedir删除目录或目录下的文件-->
<delete file="${jmeter.result}/index.jtl" />
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" classpathref="ant.jmeter.classpath" />
<!-- 执行脚本jmeter目录,加载配置,支持远程执行,结果存放目录-->
<jmeter jmeterhome="${jmeter.home}" jmeterproperties="${jmeter.home}/bin/jmeter.properties" runremote="false" resultlog="${jmeter.result}/index.jtl">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="${script.dir}" includes="selectTypeInterface.jmx" />
<!--设置jmeter/bin目录下的jmeter.properties配置项,内容输出格式-->
<property name="jmeter.save.saveservice.output_format" value="xml" />
</jmeter>
</target>
<!--把生成的.jtl数据文件转换成.html格式的报告 -->
<target name="report" depends="copy-images,xslt-report">
<echo>detailsReport generated at ${report.datestamp}</echo>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result}/index.jtl"
out="${jmeter.result}/detailsReport.html"
style="${basedir}/xlsReports/jmeter-results-detail-report_21.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
</target>
<target name="xslt-report">
<echo>summaryReport generated at ${report.datestamp}</echo>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result}/index.jtl"
out="${jmeter.result}/summaryReport.html"
style="${basedir}/xlsReports/jmeter.results.shanhe.me.xsl">
<param name="showData" expression="${show-data}"/>
<param name="titleReport" expression="${report.title}"/><!--此处报告title可以在xsl模版中设置修改,如果此处引用了变量,则会覆盖模板的title-->
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
</target>
<target name="backup">
<echo message="删除前备份html/jtl报告文件"/>
<copy todir="${env.WORKSPACE}/backup">
<fileset dir="${env.WORKSPACE}">
<include name="result/*.*"/>
</fileset>
</copy>
</target>
<target name="copy-images">
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<echo>1</echo>
<copy todir="${env.WORKSPACE}/result">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<!-- 发送邮件
<target name="send_Email" >
<mail mailhost="smtp.qq.com" mailport="465" ssl="true" user="125197291@qq.com" password="xlfzgcbkspmzbibd" subject="接口测试报告" from="125197291@qq.com" >
<to address="125197291@qq.com"/>
<message>
详细报告请查看附件!
</message>
-->
<!--携带附件!
<attachments>
<fileset dir="${env.WORKSPACE}">
<include name="backUp/*.html"/>
</fileset>
</attachments>
</mail>
</target>
-->
</project>