关于Jmeter+Ant+Jenkins作为接口、性能自动化框架的误区
说明:Apach-Jmeter有完善的桌面客户端,关联数据的处方方式,各种参数化的方式,各种Jar包的扩展,也可以用作抓包工具使用,当然最重要的是它是【开源!开源!开源!】,重要的事说三遍,目前也有基于maven方式的构建方式,Jmeter在保证了其全面性的基础上,又完善了其使用上的便捷性,必须给它打满分。
如题:
Jmeter+Ant+Jenkins用作接口自动化测试框架甚至UI自动化测试框架的确十分优秀,各种参数化,正则,断言,数据存储,通过Ant构建还可以将其.jtl结果文件转换成HTML文件,通过Jenkins完整的展现在Web页面上,各种性能指标,每个接口的详情都十分清晰的展现在页面上,当然这只是基于.jtl文件小于50M的情况。(如果将这50M文件转换成HTML文件也需要3个小时左右),但现实是,你既然要做性能自动化,那么你产生的.jtl文件就不是50M这么点了,结合我的实际经验,每次产生的.jtl文件都在500M以上,转换成HTML文件是不可能的,你的PC已经没有足够的内存去处理了,就会造成Jenkins或者Ant处于假死的状态,你是拿不到HTML文件的,.jtl文件给领导他们看得了吗,答案是不能!
重点来了,选取Jmeter+Ant+Jenkins做接口自动化与性能自动化时要区别对待,你要仔细分析你的实际需求,接口自动化是细分到每个接口都要看到详情明细,所以你的测试结果必须清晰,这里你就有必要将.jtl文件转换成HTML文件。性能自动化,我们关注的响应时间、吞吐量、请求的成功率、Cpu、内存等性能指标,关注的重点是高并发下服务端运行的稳定性,关注的是服务端的概况,这里我们就没必要关注每个接口的详情了,产生的.jtl结果文件也是很大的,我们没必要将其转换成HTML文件,Jenkins有一个性能分析的插件 Performance Plugin ,使用它将本次性能测试的核心性能指标转换在Jenkins页面上即可,速度相当快,至于具体的错误分析,详细的接口信息就需要自己打开Jmeter客户端去仔细分析了,这里性能测试是做不到完全自动化的,当然我能力有限,能做到的只有这些。
当然Jmeter+Ant+Jenkins用作自动化框架时你可以随意切换测试模式,想做性能自动化就把Ant的build.xml文件转换.jtl的相关配置注释掉,想做接口自动化就把转换.jtl的相关配置放开。
附build.xml文件内容。
<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的jmeter目录-->
<property name="jmeter.home" value="D:\jmeter\apache-jmeter-3.2" />
<!-- jmeter生成的jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\jmeter\云诊所核心性能场景\report\jtl" />
<!-- jmeter生成的html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\jmeter\云诊所核心性能场景\report\html" />
<!-- ?生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<!--property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /-->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
<!--property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" /-->
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.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}">
<!-- 声明要运行的脚本“*.jmx”指包含此目录下的所有jmeter脚本-->
<testplans dir="D:\jmeter\云诊所核心性能场景" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!--接口自动化时开启下方配置,做性能自动化时生成的jtl文件过大,会导致ant假死-->
<!--path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path-->
<!--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>
关于Jmeter+Ant+Jenkins作为接口、性能自动化框架的误区的更多相关文章
- 七、Jmeter + ant + jenkins轻量级接口自动化测试
七.Jmeter + ant + jenkins轻量级接口自动化测试 杀猪不用牛刀,工具没有牛逼高大尚之分,每个工具都有存在的理由:关键是看会不会用,怎么用,有没有用在合适的地方. 需要安装的工具: ...
- Jmeter+Ant+Jenkins构建接口自动化测试平台(Windows)
一.首先先介绍下我的环境: 1. win10系统 2. ant版本:apache-ant-1.10.1(作用:执行脚本,便于后期的持续集成,下载地址:http://ant.apache.org/bin ...
- jmeter+ant+jenkins搭建接口自动化测试环境
jmeter+ant+jenkins搭建接口自动化测试环境(基于win) 1.jmeter jmeter依赖java运行环境,所以需要提前下载jdk并配置好环境变量 官网下载(http://jmete ...
- 基于jmeter和shell的接口性能自动化
基于jmeter和shell的接口性能自动化 1. 总体需求 由于性能测试中涉及的查询接口多,版本迭代频繁,版本更新后自动跑一轮查询业务的性能,可以及时发现一些开发修复bug触发的非预期的bug,利用 ...
- Jmeter+ant+Jenkins构建接口自动化测试时构建失败 提示:Fatal Error! 字符引用 "&#原因
Jmeter+ant+Jenkins构建接口自动化测试时构建失败 提示:Fatal Error! 字符引用 "&#原因:接口响应数据中有&#
- Jmeter+ant+Jenkins实现接口自动化平台及报告发送
项目中实现了比较方便的自动化体系,一直没时间总结一下,现抽空整理一番,废话不多说 内容如下: 一.环境准备 jmeter : 编写接口脚本,实现接口测试 ant :静默执行jmeter脚本,并生 ...
- 使用jmeter+ant+jenkins实现接口自动化测试
摘自:https://blog.51cto.com/6183574/2318519 本次使用linux环境搭建自动化框架 一.配置ANT 首先下载Ant压缩包,下载地址:http://ant.apac ...
- Jmeter+Ant+Jenkins实现接口自动化(转载)
转载自 http://www.cnblogs.com/chengtch/p/6145867.html 本文转载于上面的网址,稍作修改,实用性更强. Jmeter是压力测试.接口测试工具,Ant是基于 ...
- 基于 jmeter 和 shell 的接口性能自动化
jmeter+shell 1. 总体需求 由于性能测试中涉及的查询接口多,版本迭代频繁,版本更新后自动跑一轮查询业务的性能,可以及时发现一些开发修复bug触发的非预期的bug,利用晚上时间快速重测性能 ...
随机推荐
- leetcode-cn上面刷题
https://leetcode-cn.com/problemset/database/ ------------------------------------------------------- ...
- .NET Core SignalR 和 .NET SignalR 区别
由于要转 .NET Core ,对于以前用到的一些进行迁移. 在迁移 SignalR 的时候发现 .NET Core 下的和 .NET 下的区别还是挺大的. 功能差异 自定重新连接 .NET 下的 S ...
- python----装饰器(几种常见方式的使用与理解)
更详细的装饰器,真心实力推荐,里面介绍的很清楚,介绍可见链接:https://blog.csdn.net/buster_zr/article/details/81104551 1.装饰器的理论: (1 ...
- python中的lambda()函数
语句:print map(lambda x:x ** 2,[1,2,3,4,5]) 其中lambda()函数在Python文档,文档中解释如下: lambda An anonymous inline ...
- vue quill使用&quill 自定义图片上传&自定义mp4 更换标签
pluins 创建quill 目录 创建文件video.js import { Quill } from 'vue-quill-editor' // 源码中是import直接倒入,这里要用Quill. ...
- vue computed、filters 用法笔记
computed 在使用时的效果是属性,不是函数. 其次,computed 的值是“智能”响应的,依赖必须都是这个实例自己的东西,如果某个计算需要依赖传入的值,则推荐使用 methods. filte ...
- mysql修改default值
ALTER TABLE xxxxx ALTER COLUMN xxxxx SET DEFAULT '0';
- Laravel 中使用 Repository 模式
在本文中,我会向你展示如何在 Laravel 中从头开始实现 repository 设计模式.我将使用 Laravel 5.8.3 版,但 Laravel 版本不是最重要的.在开始写代码之前,你需要了 ...
- js2py
js2py
- Vuex框架原理与源码分析
Vuex是一个专为Vue服务,用于管理页面数据状态.提供统一数据操作的生态系统.它集中于MVC模式中的Model层,规定所有的数据操作必须通过 action - mutation - state ch ...