【Jmeter篇】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:最大动态端口数(Default = 5000, Max = 65534)

TcpTimedWaitDelay:TCP等待延迟时间(30)

TcpNumConnections:TCP最大连接数(Default = 16,777,214)

MaxFreeTcbs:最大TCP控制块(1000-2000)

MaxHashTableSize:最大TCB Hash table数量(64-65536)

解析中值为10进制,下方脚本已全转换为16进制

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\]

"MaxUserPort"=dword:fffe

"TcpTimedWaitDelay"=dword:1e

"TcpNumConnections"=dword:fffffe

"MaxFreeTcbs"=dword:7D0

"MaxHashTableSize"=dword:10000

  • 踩坑三:
    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远程的时候找的是虚拟机的网卡,导致连接失败。
    解决方案:禁掉不使用的虚拟机网卡,测试之后再恢复。

  • 踩坑六:

接口参数有中文时,请求后传参是乱码?

内容编码设置为utf-8

  • 踩坑七:

接口参数化有中文时,请求后传参是乱码?

内容编码设置为gb2312

  • 踩坑八:

请求接口响应乱码,编码问题修改配置文件:

jmeter.properties中的sampleresult.default.encoding参数,改成sampleresult.default.encoding=utf-8

jmeter安装路径,改参数E:\jmeter\apache-jmeter-3.0\bin文件jmeter.properties中

#sampleresult.default.encoding=ISO-8859-1改为

sampleresult.default.encoding=utf-8

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ajax动态拼接li并绑定事件

一、二对新增元素 再次进行绑定相应事件&#xff0c;例如在 Ajax 中的 success 返回函数中&#xff0c;再执行完新增元素的代码后进行绑定 success: $(body).append("<li idnew> new Li </li>"); //这里统一用click事件为例 $(#new).click(function(){}…

【PS】如何将截图获取的印章迁移到新图片上

有时候我们需要特殊签名或者合同印章时&#xff0c;可以通过其他图片上截图后&#xff0c;经过处理后放置到新的图片上&#xff0c;这个时候我们可以通过ps进行处理&#xff0c;主要三个流程&#xff1a; 1.截取需要的签名或印章&#xff0c;用ps消除多余的信息&#xff1b; 2…

【Jmeter篇】Jmeter分布式调度压测部署

Jmeter 是java 应用&#xff0c;对于CPU和内存的消耗比较大&#xff0c;因此&#xff0c;当需要模拟数以千计的并发用户时&#xff0c;使用单台机器模拟所有的并发用户就有些力不从心&#xff0c;甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力&#xff0c;j…

echarts案例链接

https://blog.csdn.net/luanpeng825485697/article/details/77198858 http://echarts.baidu.com/echarts2/doc/example/mix4.html#infographic

【工具】FTP软件FileZilla下载和连接服务器

作为一名偏后台程序测试的测试工程师&#xff0c;经常会接触运维相关工作&#xff0c;与服务器打交道。 一般公司会搭建内网环境和外网环境&#xff0c;项目开发、SIT测试主要是在内网环境做&#xff0c;然后等到UTA、预投产阶段在外网环境。 如果公司业务量大&#xff0c;多个…

【Fiddler篇】Stave插件之环境映射

Stave是一个Fiddler扩展插件&#xff0c;让Fiddler能将URL映射到本地目录&#xff0c;实现批量文件自动响应。 Fiddler自带的AutoResponder每条自动响应规则只能对应一个本地文件&#xff0c; 在文件数目较多的时候&#xff0c;使用起来很不方便&#xff0c;往往需要部署到本地…

C++ const 引用 指针答疑

常变量 const int a 常引用 const int &a 常指针 const int *a const * int a 用法1&#xff1a;常量 取代了C中的宏定义&#xff0c;声明时必须进行初始化(!c类中则不然&#xff09;。const限制了常量的使用方式&#xff0c;并没有描述常量应该如何分配。如果编译器知…

【Jmeter篇】临界区控制器Critical Section Controller业务流顺序负载压测

临界区控制器&#xff08;critical section Controller&#xff09; 作用&#xff1a;临界区控制器确保其子节点下的取样器或控制器将被执行&#xff08;只有一个线程作为一个锁&#xff09;确保它的子元素(samplers /控制器等)在执行控制器的子程序之前只执行一个线程作为指定…

【Python】Python3编码规范

Python核心发行代码里面优先使用ASCII码或Latin-1编码。3.0后UTF-8编码优先于Latin-1。 一 、空格与缩进&#xff1a; 缩进 对于每一次缩进使用4个空格。使用括号、中括号、大括号进行垂直对齐&#xff0c;或者缩进对齐。 制表符还是空格? 永远不要将制表符与空格混合使用。P…

服务器判断客户端是否连接标志

利用客户端传回来的数据长度&#xff0c;如果小于0则是断开状态&#xff0c;否则为连接状态

【Jmeter篇】后置处理器之边界提取器

我们想从接口中提取一些想用的东西&#xff0c;不习惯用正则提取器和json提取器&#xff0c;今天我们来介绍下边界提取器&#xff0c;相对前者较简单些。它通过左右边界来提取需要的内容&#xff0c;它可以匹配任何格式的内容&#xff0c;如文本、json、xpath、html等等&#x…

【Python】内置os.path模块最常用的一些用法

os.path模块主要用于文件的属性获取&#xff0c;在编程中经常用到&#xff0c;以下是该模块的几种常用方法。 更多的方法可以去查看官方文档&#xff1a;http://docs.python.org/library/os.path.html # -*- coding:utf-8 -*-#作者&#xff1a;cacho_37967865 #博客&#xff1…

数组对象的slice和splice方法

数组对象的slice和splice方法之前被大神虐过一次&#xff0c;长长记性&#xff0c;专门把这两个方法拿出来做一个比较&#xff0c;本文仅做学习笔记使用&#xff0c;如有任何意见或建议欢迎在评论区指出。slice定义和用法slice() 方法可从已有的数组中返回选定的元素。语法arra…

【Jmeter篇】导出Jmeter脚本及查看接口响应时间

一、通过fiddler测试接口响应时间 1、可通过Rules-Customize Rules用记事本打开&#xff0c;把下面的代码复制到 class Handlers中 function BeginRequestTime(oS: Session){if (oS.Timers ! null){return oS.Timers.ClientBeginRequest.ToString(); }return String.Empt…

UDP之sendto错误解决

照着视频敲完代码&#xff0c;发现错误&#xff1a; 一直百度&#xff0c;发现参数没有问题。。等等 于是一个代码一个代码对比&#xff1a; 没有写type。。。。尴尬了 以后还是要细心

【Python】shutil内置模块复制和重命名文件

在日常工作和生活中&#xff0c;我们经常要复制和重命名文件&#xff0c;如果遇到大量数据处理时&#xff0c;手动去操作非常麻烦&#xff0c;现在我们可以通过python的shutil模块完成&#xff0c;以下主要介绍几种场景&#xff1a; 1.复制一个文件到其他目录&#xff0c;不重新…

【测试方法】业务流测试法之场景法

一、场景法&#xff1a;通过运用场景来对系统的功能点或业务流程的描述&#xff0c;从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情&#xff0c;通过事件来触发某个动作的发生&#xff0c;观察事件的最终结果&#xff0c;从而用来发现需求中存…

python之网络编程1-socket-tcp与udp

一、概念 两个独立python文件之间可以通过写入文件&#xff0c;读取文件进行交互 由于不同机器上的程序要通信&#xff0c;才产生了网络 B/S架构统一入口&#xff0c;各种小程序和公众号 服务端 一直运行&#xff0c;等待服务别人 客户端 用的时候&#xff0c;才使用服务 想要…

【Linux】crontab定时任务配置全过程

因为测试工作中需要在服务器上配置定时任务执行脚本&#xff0c;使用到了linux 的crontab。特此记录一下配置的整个流程。 crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令&#xff0c;并将其存放于“crontab”文件中&#xff0c;以供之后读取和执行。 …

【Jmeter篇】你有Fiddler、Charles抓包,我有Jmeter录制Web和App端

一、录制web端设置 1、启动jmeter&#xff0c;测试计划—添加—非测试元件—HTTP代理服务器 2、HTTP代理服务器设置&#xff0c;并启动 端口设置为8888&#xff0c;目标控制器选 测试计划>HTTP代理服务器&#xff0c;点启动&#xff0c;启动后在jmeter的bin目录下会生成一…