Ant+Jmeter自动化接口测试的部署 及 部署过程中的坑
一、环境准备:
.png)
.png)
3、Jmeter下载:http://jmeter.apache.org/download_jmeter.cgi
4、将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中
5、修改Jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=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:\apache-jmeter-3.0"/>
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-3.0\report"/>
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\apache-jmeter-3.0\report"/>
<!-- 生成的报告的前缀-->
<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="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:\apache-jmeter-3.0\bin" includes="APP服务接口.jmx" />
<!-- 增加如下一行代码,否则会报错误,经测试使用jmeter3.0版本不增加下面一行代码不会报告错误-->
<!--<property name="jmeter.save.saveservice.output_format" value="xml"/>-->
</jmeter>
</target>
<!-- html报告中时间显示为NAN,原因是ant中缺失了两个lib库 xalan-2.7.2.jar和serializer-2.7.2.jar ,将这两个库拷贝到ant的lib目录下,或者在这里增加如下代码均可解决-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path> <!-- html报告中Date report这里的时间没有正确显示出来,原因是未设定report.datestamp 属性值-->
<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>
四、运行脚本:
<?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:\apache-jmeter-3.0"/>
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-3.0\report"/>
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\apache-jmeter-3.0\report"/>
<!-- 生成的报告的前缀-->
<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="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:\apache-jmeter-3.0\bin" includes="APP服务接口.jmx" />
<!-- 增加如下一行代码,否则会报错误,经测试使用jmeter3.0版本不增加下面一行代码不会报告错误-->
<!--<property name="jmeter.save.saveservice.output_format" value="xml"/>-->
</jmeter>
</target>
<!-- html报告中时间显示为NAN,原因是ant中缺失了两个lib库 xalan-2.7.2.jar和serializer-2.7.2.jar ,将这两个库拷贝到ant的lib目录下,或者在这里增加如下代码均可解决-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path> <!-- html报告中Date report这里的时间没有正确显示出来,原因是未设定report.datestamp 属性值-->
<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>
2、Summary里的字段Min Time和Max Time显示的是NaN,没有显示正确的时间的第二种解决方法。
解决方法: 从Jmeter的lib包里把xalan-2.7.2.jar和serializer-2.7.2.jar copy到Ant的lib包里;
六、测试过程中遇到的其他问题
1、使用Jmeter3.0版本,产生的html测试报告中是没有数据的,原因是3.0中的 jmeter-results-detail-report.xsl 有一些错误,从github中下载2.X版本中的 jmeter-results-detail-report_21.xsl放置在D:\apache-jmeter-3.0\extras 目录下,并修改build-xml:
<xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
2、报错如下:
taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
using the classloader AntClassLoader[]
原因:Ant 的ant-jmeter-1.1.1.jar这个文件缺失
解决方法:将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中
参考地址:
http://www.cnblogs.com/puresoul/p/4808416.html
http://www.cnblogs.com/puresoul/p/5053035.html
http://www.jianshu.com/p/b606b27b7155
Ant+Jmeter自动化接口测试的部署 及 部署过程中的坑的更多相关文章
- ant + jmeter 自动化接口测试环境部署
1.jdk下载安装 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.jmeter下载 jmeter官 ...
- jenkins+ant+jmeter自动化性能测试平台
jenkins+ant+jmeter自动化性能测试平台 Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,http://w ...
- Jenkins+Ant+Jmeter自动化集成测试实例
通过学习Jmeter自动化测试,接触到了Ant命令和其构建文件build.xml文件的编写,与此同时,通过将测试项目集成在jenkins上,进一步学习了jenkins的一些环境配置知识.以下是自己的初 ...
- windows10 安装配置 jmeter 自动化接口测试 邮件报告
1.安装依赖包:JDK(版本:jdk-7u17-windows-x64) 双击即可安装,注意:jdk不要安装中文路径下,jdk和jre安装在同一路径下 1.1:配置jdk环境变量 (1)JAVA_HO ...
- jenkins+ant+jmeter自动化环境搭建(一)
写在最前面: jmeter:测试接口的工具,支持java语言: ant:Apache Ant是一个Java库和命令行工具,其任务是将构建文件中描述的进程作为相互 ...
- 【转】Jenkins+Ant+Jmeter自动化性能测试平台
Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,,既然可以使用ant运行,那和hudson.jenkins集成就很方便了 ...
- jenkins+ant+jmeter自动化环境搭建
jmeter:测试接口的工具,支持java语言: ant:Apache Ant是一个Java库和命令行工具,其任务是将构建文件中描述的进程作为相互依赖的目标和扩展点.只要使用过Linux系统的读者,应 ...
- centos7搭建ANT+jmeter+jenkins接口测试自动化环境
一.环境准备 因为用到了jmeter和apache-tomcat,centos7必须要有java环境,所以配置jdk和apache-tomcat什么的,就不多说了,自行操作 帮你们偷懒: ant下载地 ...
- jmeter+ant 实现自动化接口测试环境配置
前置:安装jdk 1.8以上 一.安装jemeter 下载地址:http://jmeter.apache.org/download_jmeter.cgi 1.1 解压jmeter,放在某个目录,例如D ...
随机推荐
- CodeForces911D 逆序对
http://codeforces.com/problemset/problem/911/D 题意 给你一个长度为N的序列,有M次操作.每次翻转[l,r]的区间,每次操作后询问序列逆序对个数的奇偶性 ...
- 牛客多校第三场 A- PACM Team 背包/记忆路径
https://www.nowcoder.com/acm/contest/141#question 一眼背包,用四维dp记录在A,B,C,D条件限制下可以获得的最大知识点,但是题目要求输出路径,在输入 ...
- Elasticsearch5.5 多机集群配置和x-pack安装配置
x-pack安装配置 https://www.elastic.co/guide/en/elasticsearch/reference/current/installing-xpack-es.html ...
- 1032. Sharing (25)
To store English words, one method is to use linked lists and store a word letter by letter. To save ...
- Unity做AR
Unity做AR呢这里借助了高通的AR包 这里是视频教程 http://www.tudou.com/programs/view/dnvEbIubNzI/ 这里是结果演示 http://www.tu ...
- utf8_bin跟utf8_general_ci的区别
ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的; bin 是二进制, a 和 A 会别区别对待. 例如你运行: SEL ...
- luogu 1030 求先序遍历
此题给出中序遍历和后序遍历后的序列,乍一看确乎想不出法子解决,毕竟是逆向思维: 但是后序遍历的特殊性质 son1,son2,x 使得后序的末尾便是根节点,再由中序天然的递归性质便可递归输出,用下fin ...
- Synchronized和lock的区别和用法
一.synchronized和lock的用法区别 (1)synchronized(隐式锁):在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号中表示需要 ...
- mysql外键(FOREIGNKEY)使用介绍
原文地址:http://www.2cto.com/database/201501/367791.html 一.基本概念 1.MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种.不 ...
- http://blog.csdn.net/w_e_i_/article/details/70766035
http://blog.csdn.net/w_e_i_/article/details/70766035