JMeter JMeter自身运行性能优化

 

JMeter自身运行性能优化

 

by:授客 QQ1033553122

测试环境

apache-jmeter-2.13

 

1.   问题描述

单台机器的下JMeter启动较大线程数时可能会出现运行报错的情况,或者在运行一段时间后,JMeter每秒生成的请求数会逐步下降,直到为0,即JMeter运行变得很“卡”。

 

2.   解决方法

1)设置JVM内存

找到JMeter bin目录下的jmeter.bat文件,notepad等文本工具打开,编辑

找到如下内容

rem See the unix startup file for the rationale of the following parameters,

rem including some tuning recommendations

set HEAP=-xms512m -Xmx512m

set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%

set TENURING=-XX:MaxTenuringThreshold=2

 

修改带背景色,文字带颜色内容如下

set HEAP=-xms2048m -Xmx2048m

set NEW=-XX:NewSize=640m -XX:MaxNewSize=640m

 

说明:

-xms512m:初始化堆内存大小 -Xmx512m:最大堆内存大小,这里的内存大小建议为512的整数倍,可以根据机器实际内存进行合理的设置,建议最大值-Xmx不要超过剩余物理内存的50%

 

通常会将 -xms -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源

 

set NEW=-XX:NewSize=640m -XX:MaxNewSize=640m

1-XX:newSize:新生代初始内存的大小,应该小于 -xms的值

2 -XX:MaxnewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于-Xmx的值,因为新生代占内存来自整个堆内存。为了优化GC(内存垃圾回收),最好设置-XX:MaxnewSize值约等于-Xmx1/3

 

注意:jvm在执行GC时,会停止工作。MaxnewSize的增大,可以降低GC频率,

 

2)指定测试结果数据存储文件

 

如上,JMeter中很多插件都提供了结果文件存储设置,为了避免请求测试结果数据都存储到JVM内存(因常驻数据无法回收,量大的话会很快压垮jmeter),需要为插件指定一个文件,把数据存储到该文件,测试前务必要进行这类设置检查。

 

另外,通常结果文件要保存为CSV格式(比起xml格式,可以少写入好多数据)

 

3)针对某些监听器,设置仅记录错误日志

根据第二点的分析,针对某些监听器(比如查看结果树),我们只需关注错误日志信息的情况下,需要勾选“仅日志错误”,这样只会保存错误日志到内存,数据不会多。

 

4)通过保存的结果文件“重绘”测试监听结果图表

针对一些不需要在测试过程中“实时”查看的测试“监听器”图表,可以考虑“线下”生成图表。具体做法如下所例。

eg:

JMeter <wbr>JMeter自身运行性能优化


 

 

如上图,这里添加了监听器“聚合报告”,插件,因为我们需要查看相关数据,比如吞吐量,请求耗时等,但是我们不需要实时查看结果,所以把对监听结果“聚合报告”给禁用了(更重要的别因是聚合报告非常消耗cpu

 

然后,我们添加了监听器“Simple Data Writer”,并设置结果数据存放文件(例子中为“测试结果.csv”),如果有必要的话还可以点击Configure设置需要保存的条目,文件格式等(通常认设置就可以了)

 

注:Simple Data Writer:该监听器可用于记录测试结果到某个文件,但不提供ui展示。

 

最后,等测试完成后,我们在插件控制面板中,点击浏览按钮,打开上述保存的文件,结果如下,可以看到生成的分析数据了。

 

 

注意:

1)Log/display Only: 仅错误日志Successes

 

这里如果勾选了仅错误日志,那么记录数据、展示数据的时候只会记录/展示错误日志,如果勾选了Successes,则只会记录/展示成功执行的记录,两个都不勾选,则认记录全部信息。这点针对其它插件也是如此

 

2)打开保存的数据文件认会分析数据文件中的所有内容,所以,每次执行前都应该重新命名结果文件(可以在输入框中直接输入新的文件名,或者找到存储目录下,备份结果文件后,把结果文件删了),防止每次测试的数据都写入到一个文件里,叠加统计了。这点针对其它插件也是如此

 

 

3)每次打开保存的结果数据文件之前,要点击工具栏的 清除、清除全部按钮,清除展示的数据,否则展示的数据会在上次的基础上叠加显示。这点针对其它插件也是如此

 

 

 

原文地址:https://blog.51cto.com/u_15241346/2839369

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Jmeter:Authenticationcredentialswerenotprovided上次在使用Jmeter对手机app进行录制后,使用查看结果树对脚本进行回放,出现了{“detail”:“Authenticationcredentialswerenotprovided.”}的问题上次的链接地址:https://blog.csdn.net/Test20201990/article/details/
初次使用jmeter时,结果树中返回的数据为未转码内容,如下:  1、在后置处理器中增加beanshellpreprocessor,如下:  Strings=newString(prev.getResponseData(),"UTF-8");charaChar;intlen=s.length();StringBufferoutBuffer=newString
jmeter默认语言设置: 1、临时设置:进入options--ChooseLanguage-- 选择中文简体,设置后语言 切换成中文,重启失效 2、永久设置:进入jmeter目录下的bin目录,用文本编辑工具ue或notepad++等 打开jmeter.properties文件,进行编辑: 找到行: #language=en 修改为: language=
第一步:打开jmeter工具。 第二步:点击鼠标右击,点击添加_线程_线程组,新增线程组。 第三步:添加HTTP请求 第四步:点击页面调试器(以谷歌浏览器为例F12)填写协议,IP,请求,路径 第五步:1.填写参数2.若页面里面没有token可以拿authorization替代,则需要创建HTTP信息头管理器,并进行
在之前的博文中,Jmeter二次开发——基于Java请求,已介绍了Jmeter二次开发的基础情况,上次分享的是java请求开发,今天来分享下Jmeter中的函数开发。聊到Jmeter的函数,知道Jmeter使用的博友肯定很熟悉。Jmeter自带一个函数库,有很多的函数,比如:__P,__Random,函数助手给我们提供了很多的方便
打开虚拟机然后用远程连接工具SSH连接到数据库将serveragent.zip放到Linux环境中在虚拟机中复制路径进入到/opt/目录解压serveragent.zip修改端口为4444永久保存到防火墙中运行startAgent.sh连接虚拟环境里面的数据库更改地址切换路径修改SQL语句点击
jmeter断言之Beanshell断言(判断数据库结果是否符合预期)该篇文章主要讲一下beanshell断言处理数据库结果。(一)首先需要添加配置原件JDBCConnectionConfiguration连接数据库信息,然后发送jdbc请求获取预期结果。我现在使用得是result_variable_name获取得是响应结果集。接下来对数
《jmeter连接MSQL数据库指导》**一、**首先安装msql服务器。在桌面安装,过程中选择认证方式为之前的认证方式,新的认证可能会导致后面连接失败,报错认证问题。其次:打开安装好的数据库,新建一个database----例如:lhd然后再这个database里面新建一个表,例如:table01,然后表中可以自
前言本章主要讲述Windows环境下实现Jmeter+Ant+Jenkins自动化持续集成注:Jmeter+Ant+Jenkins实现集成的前提是这三者环境都已安装部署好关于Jmeter及Jenkins的下载安装我已在其他篇blog已讲述,这里主要讲一下Ant的部署配置传送门1)Jmeter:https://blog.csdn.net/Makasa/art
接口类型rest接口:通过http的get和post方式得到数据,返回报文为json格式soap接口:通过soap协议得到数据,相比httpservice更能处理复杂的数据,请求和返回报文都为xml格式接口测试作用1.在后端程序完成后,可尽早进行系统测试,发现bug2.解决系统测试复杂度,测试脚本运行速度快,节省
目录 一、Jmeter简介二、Jmeter安装三、设置Jmeter语言为中文环境四、Jmeter主要元件五、Jmeter元件的作用域和执行顺序六、Jmeter进行接口测试流程七、Jmeter进行接口测试流程步骤详解 八、总结如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、
在使用cookie管理器时,没有选择对应的策略会导致cookie传递不了下面来讲一讲这些用法 作用:用于管理Testplan运行时的所有的cookie。可以手动存储,也可以自动存储;每次反复清除cookie?:勾选后将每次请求结束后都会将本次请求产生的cookie进行清除,下次请求时重新获取。CookieP
接口测试及常用接口测试工具解析一、常见接口:二、前端和后端:三、什么是接口测试:四、接口组成五、为什么要做接口测试:六、接口测试怎么测:七、用什么工具测那些关于接口测试的二三事,首先大家要搞清楚,什么是接口,其次是前后端,之后逐一抽丝剥茧让它明朗起来,没有一蹴而就的事
jmeter接口java二次开发五步走第一步:了解jmeter处理java请求的流程​ Jmeter处理请求的流程:Jmeter会读取用户传入的数据,把数据初始化到Jmeter中。调用Java请求时,jmeter会运行内部的runTest函数,调用封装的JAVA接口,获取到返回数据获取到返回数据后,Jmeter可以把返回数据
1、添加断言1)先根据“结果树”中的“HTML”中的“响应数据”,找到需要检查的网页中的文本   2)复制上述内容,根据“结果树”中的“Text”中的“响应数据”,确定最终确定要检查的文本(可能含有标签)3)在线程组下找到需要检查的url,右击“添加”→断言→响应断言    
了解需求:1、性能测试过程中,我们经常需要对流程化的业务进行性能测试,其中涉及到很多接口,这时候问开发拿接口和参数就会降低工作效率,直接用jmeter的录制功能就能提高工作效率2、开发接口案例中,我们也经常会碰到一些上传、下载、导入等等一些接口功能,这些脚本如果直接问开发
 随机数https://blog.csdn.net/qq19970496/article/details/101027184随机日期https://blog.csdn.net/qq19970496/article/details/101027813随机字符串https://blog.csdn.net/qq19970496/article/details/101027925随机变量https://blog.csdn.net/qq19970496/article/details/1
JmeterP1性能测试关键指标1,这些指标大家看到后有什么感觉呢?对于功能测试,一般结果就两种,成功的或者是不通过的,有问题的和没问题的,有毛病的和没毛病的,比如打开网页,能打开就打开,打不开就打不开2,性能测试要更复杂一点,不能直接说行还是不行,要有一个参数,一个多维度的指标,来衡量他,比
  jmeter录制脚本示例  jmeter手工脚本编写与调试  业务逻辑实现之逻辑控制器  业务脚本参数化实现  jmeter处理cookie  beanshell脚本  jmeter脚本录制badboy:        
压力测试压力测试是考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在使用压力测试,我们希望找出其他测试方法更难发现的错误,其中有主要有两种错误类型:内存泄漏,并发和同步1.性能指标响应时间:响应时间是指客户端发起请求开始到客户端接收到从服务器返回的响应