1,安装jdk1.6以上
2,安装jmeter
JMeter下载官网:http://jmeter.apache.org/download_jmeter.cgi
1.首先在Jmeter官网下载一个压缩包,解压放到你自己建的文件夹路径下
2.配置好供Jmeter运行起来的环境变量:
1)桌面上选择“我的电脑”(右键),高级, 环境变量, 在“系统变量”--->“新建”, 在变量名中输入:JMETER_HOME,变量值中输入:D:\jmeter\apache-jmeter-5.0 (输入你刚才解压Jmeter的文件所属路径<这个是我本地的路径,我放在了D:\jmeter\下面>),我的路径如下所示:
2)再修改CLASSPATH变量,变量值中添加:
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%
JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;
(注:原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
3)修改PATH变量,变量中添加:%JMETER_HOME%\bin
4)jmeter默认语言为英文,所以我们先要设置一下bin/jmeter.properties文件内容,修改jmeter.properties文件
将language=en前面的#号去掉,改为 language=zh_CN。
安装完后打开cmd,运行jmeter -v 如图
3安装ANT
1.官网下载:http://ant.apache.org/bindownload.cgi
2.下载后得到的是一个的压缩包,将其解压到你指定的文件夹即可,例如本人的路径为:D:\ant\apache-ant-1.9.11
配置Ant的环境变量:打开控制面板–>系统和安全–>系统–>高级系统设置–>高级–>环境变量
系统变量名 | 变量值 |
---|---|
ANT_HOME | D:\ant\apache-ant-1.9.11;(你ant解压的目录路径) |
path | %ANT_HOME%\bin; |
classpath | %ANT_HOME%\lib; |
释:新建系统变量:ANT_HOME,填入变量值:D:\ant\apache-ant-1.9.11(你ant解压的目录路径)
编辑path,在末尾添加变量值:%ANT_HOME%\bin;(你ant解压的目录路径)
编辑classpath,在末尾添加变量值:%ANT_HOME%\lib;(你ant解压的目录路径)
打开命令行,输入:ant -version 得到类似如下的截图
4,ant+jmeter 集成测试
下载jmeter插件JMeterPlugins-Extras-1.4.0和JMeterPlugins-Standard-1.4.0,将下载的zip文件分别解压后,
打开\JMeterPlugins-Standard-1.4.0\lib\ext\文件夹,将该文件夹下面的文件全部拷贝到jmeter安装目录下的\%JMETER_HOME%\lib\ext\文件夹中。
打开\JMeterPlugins-Extras-1.4.0\lib\ext\文件夹,将该文件夹下面的文件全部拷贝到jmeter安装目录下的\%JMETER_HOME%\lib\ext\文件夹中。
1)jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,修改jmeter.properties文件 jmeter.save.saveservice.output_format=xml.
(2)将%JMETER_HOME%\extras\ant-jmeter-1.1.1.jar拷贝到apache-ant-1.9.11\lib目录下.
(3)在\%JMETER_HOME%\extras目录下打开以管理员的权限运行CMD,运行"ant.bat -file build.xml -Dtest=Test" . 查看\%JMETER_HOME%\extras目录下是否出现Test.jtl、Test.html文件,若有,则构建成功。注意:Test.jmx是默认存在的Sample脚本文件.
(4)若构建失败,请分析cmd打印的日志消息,定位问题.
5,创建测试脚本 *.jmx 文件
1,如何编写脚本请参见:http://www.cnblogs.com/puresoul/p/4740436.html
2、脚本目录:D:\AllApiTest\testscript
3、脚本内容:
api测试.jmx
4,编写build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="all" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\jmeter\apache-jmeter-5.0" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\AllApiTest\resultLog\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\AllApiTest\resultLog\html" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="all">
<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:\AllApiTest\testscript" includes="*.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-detail-report_21.xsl" >
<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>
5,以管理员的权限运行CMD,切换到\%JMETER_HOME%\extras目录下,"ant.bat -file D:\AllApiTest\build.xml",其中D:\AllApiTest\build.xml为自己上一步手动创建的build.xml路径。生成的报告保存在D:\AllApiTest\resultLog\html\文件夹下,效果图:
最后附上测试启动的 .bat文件脚本,路径根据自身情况修改
@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...11
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
echo Requesting administrative privileges...2222
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
:--------------------------------------
echo bigen
start cmd /k "cd/d D:\jmeter\apache-jmeter-5.0\extras\&&ant.bat -file D:\AllApiTest\build.xml"
echo test finished