- jmeter:开源,能做接口测试,也能做性能测试;
- ant:基于Java的构建工具,完成脚本执行并收集结果生成报告;
- jenkins:用来持续集成,也就是自动化的关键。
ant和maven类似,maven是执行pom文件,ant是执行build文件(配置主要是在build.xml文件)
(jmeter在我电脑上的安装目录:D:\Apache-Jmeter-5.1.1)
一、jmeter调通接口
使用jmeter创建一个测试脚本test01.jmx
1、启动jmeter
在jmeter安装目录的bin目录下,然后找到jmeter.bat启动jmeter
2、添加线程用户-线程组
在计划上右键,添加线程-线程组
3、添加取样器-http请求
在线程组上右键,添加取样器-http请求
4、http请求
http请求填写项目的服务名称或者IP,这边举例请求百度
(如果有多个接口,就添加多个http请求)
5、添加察看结果树
在线程组上右键,添加监听器-察看结果树
6、保存脚本
点击运行,保存脚本在E:\jmetertest\tempTest(无固定位置,自己决定保存在哪,后面需要用到)目录下
二、jmeter和Ant结合的基础配置
1、复制ant-jmeter-1.1.1.jar
进入jmeter安装目录的extras目录下,把ant-jmeter-1.1.1.jar复制到Ant安装目录(D:\Apache-Ant-1.9.15)的lib目录下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发jmeter脚本
2、复制修改build.xml
进入jmeter安装目录的extras目录下,把build.xml复制一份放在jmeter脚本所在的目录E:\jmetertest\temp_test下进行修改或者直接复制下面模板进行修改
修改build.xml
模板如下,将里面需要改的地方,改成自己本地真实的路径
<?xml version="1.0" encoding="UTF-8"?>
<project name="jenkins_ant_jmeter20200730" basedir=".">
<tstamp>
<!-- kk是24小时制,KK是12小时制 -->
<format property="date" pattern="yyyy/MM/dd kk:mm:ss"/>
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录 -->
<property name="jmeter.home" value="D:\Apache-Jmeter-5.1.1"/>
<!-- 报告的标题,按需命名 -->
<property name="report.title" value="xtl_interface_autoTest"/>
<!-- 需要改成自己的jmeter生成jtl格式的结果报告的路径 -->
<property name="jmeter.result.jtl.dir" value="E:\jmetertest\tempTest\reports\jtl"/>
<!-- 需要改成自己的jmeter生成html格式的结果报告的路径 -->
<property name="jmeter.result.html.dir" value="E:\jmetertest\tempTest\reports\html"/>
<!-- 生成的报告名称 -->
<property name="Summary.report.name" value="SummaryReport"/>
<!-- 生成的报告名称+路径 -->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${Summary.report.name}.jtl"/>
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${Summary.report.name}.html"/>
<!-- 从这运行,name是关键,运行时需要输入命令ant +name,例如:ant run -->
<target name="run">
<antcall target="test"/>
<antcall target="report"/>
</target>
<!-- 运行jemeter文件-->
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<testplans dir="E:\jmetertest\tempTest" 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" depends="test">
<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="titleReport" expression="${report.title}"/>
<param name="dateReport" expression="${date}"/>
</xslt>
<!-- 需要把图标拷贝过来,否则生成的报告图标显示异常 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png"/>
<include name="expand.png"/>
</fileset>
</copy>
</target>
</project>
三、测试运行Ant
1、运行ant run
在E:\jmetertest\temp_test目录下,即build.xml所在的目录打开命令窗口,输入命令:ant run
,回车运行(run是build.xml文件中target的name)
2、查看测试报告
运行成功后,查看测试报告
四、和Jenkins结合配置
这是实现自动化的一步
1、新建项目
新建一个自由态的项目,任务名称自取
2、配置Ant安装
全局工具配置,配置Ant的地址
已经安装在本地的话,不勾选自动安装,直接进行新增,
Name:文件夹名称,
ANT_HOME:安装目录
3、配置构建Invoke Ant
配置项目,增加构建步骤Invoke Ant,
Ant Version:选择第3步配置的Ant,
Targets:build.xml文件中target的name,
Build File:build.xml文件所在的路径
效果如下:
直接点击构建就可以运行脚本,可以测试下能不能运行成功
还可以配置定时构建,即自动运行(见下文)
4、定时构建(自动)
配置项目,构建触发器选择Build periodically
配置日程表,如H/10 * * * *,表示的是10分钟执行一次
补充:总共有五个,代表不同的时间,分钟、小时、日、月、星期
范围用-隔开,如2-8
时间间隔用/,如H/11
多值用,隔开,如1,3,5
日程 | 说明 |
H/22 * * * * | 每22分钟执行一次 |
H H/10 * * * | 每10小时执行一次 |
H 10 * * * | 每天的10点执行一次 |
H 3,6,9 * * * | 每天的369点执行一次 |
H H H/5 * * | 每5天执行一次 |
H H 2-12/3 * * | 每个月的2到12号,每3天执行一次 |
H H 5 * * | 每个月的5号执行一次 |
H H * H/6 * | 每6月执行一次 |
H H H 6 * | 每年的6月执行一次 |
H H * * 5 | 每星期5执行一次 |
H H * * 2,4,6 | 每星期246执行一次 |