一、前言
性能测试首选的工具是JMeter,在此不多做介绍,但是不得不说JMeter也是一款非常好的接口测试工具。性能测试过程中手工重复的活动非常多,为了给客户提供一个性能测试报告,我用了一周时间进行并发测试、数据整理、数据分析、最后生成测试报告,真的是手工重复到怀疑人生;于是萌生了实现性能测试自动化的想法。之前用Robot framework框架做过WEB自动化、安卓端自动化、接口自动化,但是始终未正真明白自动化的意义或是价值,现在突然顿悟,测试工作中最大的痛点就是重复,减少工作中的痛点才是自动化最大的价值。所以自动化的第一步不是选用什么语言或是框架,而是能真正分析出自己工作中的痛点。
二、框架介绍
大体逻辑如下:
(1)Ant通过XML文件进行构建,所有的构建信息配置在build.xml文件中,通过调用target树来执行各种任务;如执行测试脚本(jmx文件),输出测试结果(jtl文件);
(2)Ant通过测试结果(jtl文件)构建生成html测试报告,输出在制定路径下;
(3)根据build.xml文件中配置的邮件信息,将html测试报告自动发送到制定的邮箱;
三、环境搭建
Java安装
1、Java下载地址:https://www.java.com/zh_CN/
2、Java 环境变量配置
(1)设置路径:我的电脑->属性->高级->环境变量;
(2)在【系统变量】新增JAVA_HOME,变量为JDK的路径;

(3)在【系统变量】新增CLASSPATH,变量为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

(3)PATH中添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

3、检验是否配置成功
(1)cmd进入命令行,输入:java -version,显示出java 的版本信息即配置成功;

JMeter安装
1、JMeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
2、JMeter 环境变量配置
(1)设置路径:我的电脑->属性->高级->环境变量:
(2)在【系统变量】新增JMETER_HOME,变量为jmeter的路径

(3)PATH中添加 %JMETER_HOME%\bin;

3、检验是否配置成功
(1)cmd进入命令行,输入:jmeter -v,显示出JMETER的版本信息即配置成功;

Ant安装
1、Ant下载地址:http://ant.apache.org/bindownload.cgi
2、Ant 环境变量配置
(1) 设置路径:我的电脑->属性->高级->环境变量:
(2)在【系统变量】新增ANT_HOME,变量为ANT的路径

(3)PATH中添加%ANT_HOME%\bin;

3、检验是否配置成功
(1)cmd进入命令行输入:ant -version,显示出Ant的版本信息即配置成功;

四、构建步骤
1、测试准备
(1)JMeter脚本按测试计划选中进行保存,如果按线程进行保存,构建时会报错,后面问题汇总模块会提到,例如保存为TestPlan.jmx。
(2)新增构建文件的文件夹,分别存放测试脚本testcase目录和存放报告的report目录,其中report目录中再创建运行结果jtl目录和展示的html目录

(3)修改配置文件:jmeter.properties:
文件路径:%JMETER_HOME%\bin\jmeter.properties
将jmeter.save.saveservice.output_format=csv改为jmeter.save.saveservice.output_format=xml,去掉前面备注的#号。
2.Ant构建
(1) 找到JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar这个文件,将其复制到Ant所在目录lib子目录之下。

(2)编辑build.xml(重点)
新建一个xml文件,里面内容为:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="ant-jmeter-test" default="run" basedir=".">
3 <tstamp>
4 <format property="time" pattern="yyyyMMddhhmm" />
5 </tstamp>
6 <!-- 需要改成自己本地的 Jmeter 目录-->
7 <property name="jmeter.home" value="C:\Users\payegis\Downloads\apache-jmeter-5.0" />
8 <property name="report.title" value="性能测试"/>
9 <!-- jmeter生成jtl格式的结果报告的路径-->
10 <property name="jmeter.result.jtl.dir" value="C:\Users\payegis\Downloads\apache-jmeter-5.0\report\jtl" />
11 <!-- jmeter生成html格式的结果报告的路径-->
12 <property name="jmeter.result.html.dir" value="C:\Users\payegis\Downloads\apache-jmeter-5.0\report\html" />
13 <!-- 生成的报告的前缀-->
14 <property name="ReportName" value="TestReport" />
15 <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
16 <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
17
18 <target name="run">
19 <antcall target="test" />
20 <antcall target="report" />
21 </target>
22
23 <target name="test">
24 <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
25 <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
26 <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
27 <testplans dir="C:\Users\payegis\Downloads\apache-jmeter-5.0\testcase" includes="*.jmx" />
28
29 <property name="jmeter.save.saveservice.output_format" value="xml"/>
30 </jmeter>
31 </target>
32
33 <path id="xslt.classpath">
34 <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
35 <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
36 </path>
37
38
39 <target name="report">
40 <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
41 <xslt
42 classpathref="xslt.classpath"
43 force="true"
44 in="${jmeter.result.jtlName}"
45 out="${jmeter.result.htmlName}"
46 style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
47 <param name="dateReport" expression="${report.datestamp}"/>
48 </xslt>
49
50 <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
51 <copy todir="${jmeter.result.html.dir}">
52 <fileset dir="${jmeter.home}/extras">
53 <include name="collapse.png" />
54 <include name="expand.png" />
55 </fileset>
56 </copy>
57 </target>
58
59 </project>
根据注释中的内容修改,基本格式没有问题,运行根据报错查找相关错误,在保存的时候记得保存utf-8编码的格式。将这个build.xml文件放在ant的bin目录下。
(3)build.xml中构建活动定义完成后,cmd进入命令行,进入build.xml的目录下输入ant,回车执行,如下图提示BUILD SUCCESSFUL即可成功。

(3)本地目录下C:\Users\payegis\Downloads\apache-jmeter-5.0\report\htmlL,可查看到测试报告,如下截图:

来源:https://www.cnblogs.com/fousor/p/9999453.html
