>[danger] # Ant + Jmeter自动执行脚本并且生成测试报告
>[info]## 前置条件
windows (所有工具均支持linux,故linux也可以)
1.下载安装jdk并且正确配置环境变量(包含java开发工具包和java运行环境(jre),因jmeter是java开发,故需要安装jdk)
http://www.oracle.com/technetwork/java/javase/downloads/index.html
~~~
变量名:JAVA_HOME
变量值:电脑上JDK安装的绝对路径
~~~
~~~
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
~~~
~~~
变量名:path
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
~~~
![](https://img.kancloud.cn/52/b0/52b003feb0b5591089e54bba97dcc7ba_1029x267.PNG)
2.下载ant并且正确配置环境变量(一个自动化工具,通过配置文件,执行一些重复性的任务)
http://ant.apache.org/bindownload.cgi
ant环境配置:
ANT\_HOME:C:\\apache-ant-1.9.13
CLASSPATH:C:\\apache-ant-1.9.13\\lib
Path:C:\\apache-ant-1.9.13\\bin
![](https://img.kancloud.cn/fa/bc/fabc0abf945716dd197a879168e2d17c_661x197.PNG)
3.下载jmeter并且正确配置环境变量(性能测试工具,java语言开发。官方提供了与ant结合的jar包,可在ant的配置文件直接使用)
jmeter最新版本下载地址:https://jmeter.apache.org/
jmeter历史版本下载地址:http://archive.apache.org/dist/jmeter/binaries/
* JMETER_HOME=> F:\CYL\test\jmeter\apache-jmeter-3.0(根据实际的jmeter解压路径填写)
*CLASSPATH=>%JMETER_HOME%\lib\\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
* path =%JMETER_HOME%\bin
![](https://img.kancloud.cn/f4/f7/f4f79fa0a471334f8da20ea41a3dca6e_646x305.PNG)
>[info]## 拷贝jar包
将/jmeter/extras/ant-jmeter-1.1.1文件拷贝至/ant/lib/下
![](https://img.kancloud.cn/a0/fa/a0fad6886a3a5af2eae58eddb4c48fd9_725x508.png)
![](https://img.kancloud.cn/dc/11/dc115bfafea6392e4e9ba7c4e47f0b89_735x505.png)
>[info]## 改配置
修改配置文件/jmeter/bin/jmeter.properties,去掉“#”,将jmeter.save.saveservice.output\_format=csv修改为jmeter.save.saveservice.output\_format=xml
![](https://img.kancloud.cn/2b/3c/2b3c2f8b3b8e5759ebdf917de70622d7_564x383.PNG)
>[info]## 构造测试目录
![](https://img.kancloud.cn/14/ae/14ae27043d68c516ba909e7b309d469d_327x150.png)
build.xml文件如下
```
<?xml version="1.0" encoding="UTF8"?>
<project name="Jmeter-TestCase" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!--jmeter的目录-->
<property name="jmeter.home" value="D:\soft\jmeter\apache-jmeter-5.4.1\apache-jmeter-5.4.1" />
<property name="jmeter.result.jtl.dir" value="D:\soft\testDemo\resultLog\jtl" />
<property name="jmeter.result.html.dir" value="D:\soft\testDemo\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" />
<target name="run">
<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}">
<testplans dir="D:\soft\testDemo\script" includes="Test.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<target name="report">
<xslt in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
```
jmeter的安装目录及运行脚本后生成的结果目录
~~~
<!--jmeter的目录-->
<property name="jmeter.home" value="C:\apache-jmeter-4.0" />
<property name="jmeter.result.jtl.dir" value="C:\apache-jmeter-4.0\ant_demo\resultLog\jtl" />
<property name="jmeter.result.html.dir" value="C:\apache-jmeter-4.0\ant_demo\resultLog\html" />
~~~
jmeter运行脚本后生成的文件名称
~~~
<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" />
~~~
jmeter所运行的脚本
```
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<testplans dir="C:\apache-jmeter-4.0\ant_demo\script" includes="Test.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
```
打开cmd运行ant
![](https://img.kancloud.cn/e5/05/e505fcac9466cbb3a69f4a65cc404f68_644x518.PNG)
运行后目录
![](https://img.kancloud.cn/b4/b4/b4b4b12a1835d04f87c5100fcf5e0972_327x231.png)
浏览器打开HTML文件,显示正确(缺点是min time和max time没有值)
![](https://img.kancloud.cn/d6/bd/d6bdfbe93a426b9e14ac8db31ad866d0_1350x687.PNG)
MinTime、MaxTime为什么显示为NaN呢?
解决办法:jmeter 根目录中找到lib下的serializer-2.7.2.jar、xalan-2.7.2.jar,复制到ant的lib中即可!
最终结果如下
![](https://img.kancloud.cn/b2/21/b22167bbb3e78ac34a7376c53873dbde_1339x505.PNG)
>[danger] # Ant + Jenkins自动执行脚本并且生成测试报告
新建并配置一个项目
(一、Jenkins 定时任务触发时间表达式 )
Jenkins采用了著名的UNIX任务调度工具CRON所使用的配置方式。用5个字段代表5个不同的时间单位(中间用空格隔开):
分 时 日 月 星期几
0 2 \* \* \* 表示每天凌晨2点
\*/10 \* \* \* \* 每隔10分钟一次
45 10 \* \* 1-5 每星期的星期一到星期五的10:45分执行
· M-N 指定范围值
· M-N/X 或 \*/X 在指定范围或整个有效范围内按 X 间隔的步骤
· A,B,...,Z 列举了多个值
```
每天凌晨2:00跑一次
H 2 * * *
每隔5分钟构建一次
H/5 * * * *
每两小时构建一次
H H/2 * * *
每天中午12点定时构建一次
H 12 * * * 或0 12 * * *(0这种写法也被H替代了)
每天下午18点前定时构建一次
H 18 * * *
每15分钟构建一次
H/15 * * * * 或*/5 * * * *(这种方式已经被第一种替代了,jenkins也不推荐这种写法了)
周六到周日,18点-23点,三小时构建一次
H 18-23/3 * * 6-7
---------------------
```
前置条件:正确安装jenkins且成功安装一下插件
![](https://img.kancloud.cn/8a/65/8a65b5b1ba11b223fb35655e6bd76252_1253x142.PNG)
![](https://img.kancloud.cn/eb/26/eb2669647cf7b72ece52995abf88d5d5_1497x109.PNG)
集成时尽量先创建jenkins项目再构建ant工作目录
![](https://img.kancloud.cn/63/1e/631e50d3e57b29f776aa1becf5f60520_1222x607.png)
![](https://img.kancloud.cn/99/23/99230e3f89535e368672cd6c17c3a87f_938x457.png)
![](https://img.kancloud.cn/0a/51/0a512ad587e039032ce2b7810f5e2707_903x274.png)
**注意:ant构建项目,默认执行的是Jenkins中workspace下的脚本,如果workspace下没有脚本则构建会不错的,我的做法是将脚本和build.xml文件都放置workspace目录下了。**
![](https://img.kancloud.cn/7f/33/7f3376b80a66b45f9dfe5e9075f38446_848x597.png)
**注意:Index page\[s\]:的值(TestReport.html)是与build.xml中设置的测试报告名称一致,否则在Jenkins中查看不了测试报告。**
![](https://img.kancloud.cn/d0/45/d0450fccc1da8d60a7c32091cebe4903_922x409.png)
脚本配置完成。
5.5、项目主页,点击立即构建,执行测试
![](https://img.kancloud.cn/cb/5e/cb5eefe8d582e22dedc4aa1e28def3fd_765x564.png)
继续构建基本完成,打开测试报告存放路径会看到新生成的报告文档
- 接口测试
- 5.1 postman 接口测试简介
- 5.2 postman 安装
- 5.3 postman 创建请求及发送请求
- 5.4 postman 菜单及设置
- 5.5 postman New菜单功能介绍
- 5.6 postman 常用的断言
- 5.7 请求前脚本
- 5.8 fiddler网络基础及fiddler简介
- 5.9 fiddler原理及使用
- 5.10 fiddler 实例
- 5.11 Ant 介绍
- 5.12 Ant 环境搭建
- 5.13 Jmeter 简介
- 5.14 Jmeter 环境搭建
- 5.15 jmeter 初识
- 5.16 jmeter SOAP/XML-RPC Request
- 5.17 jmeter HTTP请求
- 5.18 jmeter JDBC Request
- 5.19 jmeter元件的作用域与执行顺序
- 5.20 jmeter 定时器
- 5.21 jmeter 断言
- 5.22 jmeter 逻辑控制器
- 5.23 jmeter 常用函数
- 5.24 soapUI概述
- 5.25 SoapUI 断言
- 5.26 soapUI数据源及参数化
- 5.27 SoapUI模拟REST MockService
- 5.28 Jenkins的部署与配置
- 5.29 Jmeter+Ant+Jenkins 搭建
- 5.30 jmeter脚本录制
- 5.31 badboy常见的问题