Jmeter Web 性能测试入门 (七):Performance 测试中踩过 Jmeter 的坑
脚本运行的过程中,大量request抛error,但没有地方能够查看request是因为什么error的。
原因:Jmeter默认禁掉了运行过程中每个request的具体response信息收集,只保留了status。
解决方法:修改jmeter.properties文件中Results file configuration。把所有和response相关False的项改为True。运行后将输出保存.jtl文件中。添加tree监听器,过滤只显示error request,可以查看到request和response的具体信息,从而判断出错原因。
tree report中显示socket time out相关的错误,如何判断是jmeter工具的原因,还是服务器的原因。
错误一:
Response code: Non HTTP response code: java.net.SocketTimeoutException
Response message: Non HTTP response message: connect timed out查看Load time的时间要大于request设置的connect time out时间,所以抛出该异常。可能是由于服务端有较多请求正在处理(且处理时间较长),导致JMeter不能连接上服务器而产生的。
错误二:
Java.NET.BindException: Address already in use: connect原因:短时间内new socket操作很多,而socket.close()操作并不能立即释放绑定的端口,而是把端口设置为TIMEWAIT 状态,过段时间(默认240s)才释放,(用netstat -na可以看到),最后系统资源耗尽(windows上是耗尽了pool of ephemeral ports ,这段区间在1024-5000之间)
解决方法:在运行JMeter agent的机器上,添加注册表条目HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
MaxUserPort 65334
TcpTimedWaitDelay 30错误三:
java.lang.OutOfMemoryError: Java heap space原因:观察运行jmeter机器的内存,占用较高,超过了jmeter设置的内存上限。
解决方案:修改jmeter配置文件,调整内存可用的范围修改/bin/jmeter.bat文件:找到这2行
set HEAP=-Xms256m -Xmx256m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
改为:
set HEAP=-Xms1024m –Xmx2048m(最大值不能超过系统内存的1/2)
set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m错误四:
Response code: Non HTTP response code: java.net.SocketTimeoutException
Response message: Non HTTP response message: Read timed out发生该错误时,jmeter已经连接上服务器,查看load time没有超过设定的request timeout时间,错误可能的原因是,服务器那边未处理该线程的请求,或者为保证服务能力,断掉了连接。
为了验证该猜想,持续大于半小时向服务器发送该并发数量的请求,一段时间后,request收到503的response,证明猜想。错误五:
Failed to initialise remote engine java.rmi.ConnectException: Connection refused to host:原因:分布式测试时,server和agent之间的连接有问题。单个机器排查后,发现是某个agent机器安装了多个网卡,rmi远程的时候找的是虚拟机的网卡,导致连接失败。
解决方案:禁掉不使用的虚拟机网卡,测试之后再恢复。
jmeter脚本运行的过程中,服务器性能参数没有明显变化(CPU,内存,I/O),但request的响应时间很长。
原因:观察jmeter agent机器网络使用情况,网络使用持续达到带宽的限制峰值。request 发送的过程中pending在网络中,实际并发的request并没有同一时间到达服务器,所以服务器没有明显变化。
解决方案:提高jmeter agent机器网络带宽。
原文 性能测试工具 Jmeter Web 性能测试入门 (七):Performance 测试中踩过 Jmeter 的坑
Jmeter Web 性能测试入门 (七):Performance 测试中踩过 Jmeter 的坑的更多相关文章
- Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写
测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 ...
- Jmeter Web 性能测试入门 (三):Jmeter 常用组件说明
线程组:用来设置并发的数量和模式.是用来模拟用户并发的组件.JMeter 的每个任务都是用线程来处理的. 线程数:要并发的请求数量. Ramp-Up Period: 在多次时间内把这些并发的请求发送完 ...
- Jmeter Web 性能测试入门 (六):Jmeter 解析 response 并传递 value
解析response中的内容,并把获取到的value传递到后续的request中,常用的方法就是在想要解析response的request上添加后置处理器 本章介绍两种常用的组件 BeanShell ...
- Jmeter Web 性能测试入门 (五):Jmeter 参数化 Request
用来参数化的常用方法: 添加配置元件:用户定义的变量 使用函数助手 添加配置元件:CSV Data Set Config 添加前置处理器:BeanShell PreProcessor 添加配置元件:用 ...
- Jmeter Web 性能测试入门 (二):Fiddler 抓取 http/https 请求
jmeter自带了拦截request的功能,并且也有对应的tool:badboy 可以用.但由于我经常做移动端的项目,个人还是习惯用fiddler来收集request. 官网下载并安装Fiddler ...
- 【Fine原创】JMeter分布式测试中踩过的那些坑
最近因为项目需要,研究了性能测试的相关内容,并且最终选用了jmeter这一轻量级开源工具.因为一直使用jmeter的GUI模式进行脚本设计,到测试执行阶段工具本身对资源的过量消耗给性能测试带来了瓶颈, ...
- Jmeter Web 性能测试入门 (一):环境配置 (免安装版)
去官网下载并安装java jdk8 去官网下载jmeter binaries最新的zip,并解压到某路径下.(注:由于jmeter-server的限制,放置的路径不要太长,路径不要带空格,例如:D:\ ...
- 【转】Apache JMeter web性能测试实例
Apache JMeter是可以对利用HTTP或FTP服务器的应用程序进行测试的工具.它是基于Java的,通过所提供的API它还具有高度可扩展性.典型的JMeter测试包括创建循环和线程组.循环使用预 ...
- java web开发入门七(mybatis)基于intellig idea
mybatis 一. 入门开发步骤 1.导入相关jar包 mybatis3.4.2核心开发包 asm-5.1.jarcglib-3.2.4.jarcommons-logging-1.1.3.jarlo ...
随机推荐
- 4、java基础:JDK8接口新特性以及接口和抽象类区别
在jdk8之前,interface之中可以定义变量和方法,变量必须是public.static.final的,方法必须是public.abstract的.由于这些修饰符都是默认的,所以在JDK8之前, ...
- windows的一些常用指令
持续更新中..... 1.清除系统内 DNS 的缓冲 : nslookup baidu.com 2.修改hosts文件 : 位置 运行 -> C:/windows/system32/ ...
- perl判断文件是否存在 perl -e
perl 有很多的命令 其中有 -e 是判断文件和目录是否存在 代码如下: #!/usr/bin/perl $fileExist = -e "/var/log/messages&qu ...
- ASE19团队项目 beta阶段 model组 scrum5 记录
本次会议于12月6日,19时30分在微软北京西二号楼sky garden召开,持续20分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Kun ...
- [LeetCode] 206. Reverse Linked List ☆(反转链表)
Reverse Linked List 描述 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3-> ...
- vagrant 搭建开发环境
虚拟机盒子地址 https://app.vagrantup.com/boxes/search vagrant init hirocom/centos7.2vagrant up 修改配置 config. ...
- MySQL中SQL语句常见优化策略
1.避免全表扫描 对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引. 2.避免判断null 值 应尽量避免在where 子句中对字段进行null 值判 ...
- Ubuntu18.0 解决python虚拟环境中不同用户下或者python多版本环境中指定虚拟环境的使用问题
一. 不同用户下配置virtualenvwrapper的问题 问题描述: 安装virtualnev和virtualnevwrapper之后,在.bashrc进行virtualenvwrapper的相关 ...
- APP中的第三方“支付”功能测试建议
目前市场上APP中带有支付功能的产品有非常多,那么APP中带有第三方支付功能的产品在这一模块该如何测试才尽可能的确保测试完整性. 正常流程: 正常使用支付宝.微信.银行卡(目前使用最多的第三方支付方式 ...
- 大数据之路week02--day03 Map集合、Collections工具类的用法
1.Map(掌握) (1)将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. (2)Map和Collection的区别? A: Map 存储的是键值对形式的元素,键唯一,值可以 ...