jmeter如何发送一个十六进制的TCP请求报文,以及响应问题的解决

Jmeter tcp压测实践 github地址,欢迎star 项目需要针对socket协议接口进行性能测试。选定了比较熟悉的 Jmeter 工具,现记录下过程。 新建 Tcp Sampler Jmeter 提供了3个Tcp实现类: TCPClientImpl。这是实现文本消息交换的基本类。在TCP取样器中,Text to send字段提供不同字符集的文本常量或可变字符串信息。 BinaryTCPClientImpl。这... 阅读详情
AI摘要

本文介绍了使用Jmeter添加TCP取样器进行设备压测的方法。首先需安装并配置Jmeter环境,接着阐述了完整流程,包括添加线程组和取样器、输入参数等,还罗列了参数解释及配置文件修改方法。最后分享了请求不停问题的解决办法,即添加固定返回值和结束符验证。

首先安装有jmeter以及配置好安装环境

安装和配置环境这里不细讲!
jmeter的下载地址:https:// jmeter.apache.org
JDK下载地址:https://www.oracle.com

jmeter添加tcp取样器做设备压测

#第一次遇到要做产品设备的压测,接到需求:做设备上传TCP请求的压力测试,本人对jmeter不太熟悉。而且还要第一次做tcp的请求。虽然没接触过过但是网上文章很多但是很杂但是一些基础还是有设置教程。今天整理一份对产品硬件向服务器发送十六进制报文请求登录心看跳返回希望对大家有帮助!

一:先看一个完整的流程

1.jmeter添加线程组并添加tcp取样器
添加tcp取样器
2.输入参数(重点讲这里的参数设置);
在这里插入图片描述
3.请求成功;
在这里插入图片描述

罗列图二中的解释

TCPClient classname:表示处理请求的类,默认是TCPClientImpl类.因为我是发送16进制报文就选择填入:org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl

ServerName or IP Port Number:这里输入主机服务器IP地址和端口号

Re-use connection:如果选中,这个链接处于保持打开状态,不选中就是读取数据后就关闭,一般我是直接勾选这个就行。

Close connection:若选中,这个链接将会在运行中取样器之后被关闭

SO_LINGER:enable/disable(启用/禁用)这个SO_LINGER设置特定的值,单位为秒,(个人对这个不是太理解)

End of line (EOL) by value:表示结束符,如果设置值在-128到127之外将会跳过eol 检查,可以在jmeter.properties文件中增加属性eolByte进行设置。(可以不填写)

Connect TimeOUt:连接超时可以自己设置tcp请求连接的超时时间(单位毫秒,0 表示禁用超时)

Response Timeout:请求响应超时,与请求连接是一样的设置(单位毫秒,0 表示禁用超时)

Set NoDelay:若选中,它将会禁用Nagle’s算法(利用缓存功能)

Text to Send: 发送文本信息,这填入16进制报文(注意:不能留空格)

Login User:用户名-可不填

Password:密码-可不填

配置jmeter文件

1.要发送一个tcp请求要设置jmeter中的配置需要修改bin目录下的jmeter.properties文件将tcp.handler=BinaryTCPClientImpl显示,若配置文件没有这一项就自己添加进来保存。(我自己的就没有显示所以这个是我自己添加进来的)
在这里插入图片描述
2.配置文件更改好之后重启jmeter并填入上面的粗体信息,添加结果树和聚合报告一个简单的tcp压测就完成了一般是能正常返回若是响应码在400-499或者500-599之前都是响应失败的。

二:问题解决

下面是我遇到的一些问题和解决的办法
发起tcp请求之后,请求没有停止,一直是发情请求的状态。在这里插入图片描述
只能强制停止该请求但是响应肯定是错误的。
在这里插入图片描述
这个问题困扰了我一天,因为这是设备请求成功之后会不断与服务器进行一个心跳的交换,表示设备在线,没有固定的返回值没法判断,所以需要开发人员配合在服务器的响应返回值中的末尾添加一个固定的返回值并在发请求的End of line (EOL) by value中添加结束符进行响应验证,(注意:响应的结束符是16进制的这里要转成十进制数字填入)

响应末尾设置固定返回值是转换成十进制后范围在-128到127之间
响应末尾设置固定返回值
在End of line (EOL) by value中转换成十进制填写在发送请求就成功了!!
在这里插入图片描述
随笔日记。(亲测有效!有理解错误的地方多多纠正,希望我的经验对大家有帮助!)

【计算机网络(2)】从十六进制的ip数据报中得到详细字段信息 本博文介绍如何将十六进制的ip报文拆分出具体的字段信息。社会计算机网络和网络协议分析的初学者参考(今天看了网络协议分析期末复习重点的最后一个大题,竟然一头雾水,然后快马加鞭翻阅各种资料,然后差不多学会 了) 阅读详情

相关推荐

Jmeter 压测TCP请求步骤

公司需要,这两天苦学了一番jmeter的tcp压测,现在回头想想挺简单的,以此记录一下,方便以后查看 1.什么是TCP请求? 该协议主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换。IP协议可以进行IP数据包的分割和组装,但是通过IP协议并不能清楚地了解到数据包是否顺利地发送给目标计算机。而使用TCP协议就不同了,在该协议传输模式中在将数据包成功发送给目标计算机后,TCP会要求发送...

Crazy_Orange的博客 2万+

jmeter压测TCP动态报文

jmeter压测TCP动态报文

BOOLTechnology的博客 2891

手把手教学Jmeter之TCP取样器(含遇到的坑)

Jmeter.TCP取样器 ##需求:公司需要做一个模拟设备,模拟发送报文,要求是先发一个签到报文,然后再发送正文。后续还有要从上一个报文取数据拿到下一个发送报文。 先介绍一下tcp取样器的界面,上面红色圈起来部分是我要讲的。 名称,注释: 顾名思义就不讲了。。 TCPClient classname: 这是重点,这代表了你发出去的TCP报文是什么格式的,Jmeter自己提供的是实...

woshilishu的博客 2万+

使用Jmeter压测HTTP、TCP请求

使用Jmeter压测HTTP、TCP请求

weixin_45795312的博客 4942

【Jmeter】【TCP】TCP取样器说明

对于TCP请求的压测,需要用到Jmeter的TCP取样器:右键线程组->添加->取样器->TCP取样器 下面对TCP取样器的各选项进行说明: 选项 说明 TCPClient classname 代表了发出去的TCP报文的格式,Jmeter缺省的三个类: TCPClientImpl:实现基于文本格式的套接字应用的测试 BinaryTCPClientImpl:用来发送十六进制报文 LengthPrefixedBinaryTCPCl...

weixin_37124805的博客 2392

JMeter TCP 取样器 行尾字节值是 62,是代表的什么意思?

JMeter TCP取样器通过EOL字节值(默认62,即">"字符)识别报文结束。当从Socket流中读取到该字节时,即判定响应报文接收完成并停止读取。关键注意事项:必须填写十进制数字62;若服务端报文实际不含">"或中间误现该字符,将导致连接重置或数据截断。验证时需通过抓包确认真实结束字节,其他参数如SO_LINGER和超时设置也影响测试结果。该机制本质是通过特定终止符划分TCP消息边界。

u013928175的专栏 426

jmeter BeanShell tcp 性能测试, 发送和接受数据详细示例

jmeter 使用 beanshell 发送tcp请求实例 基于可能预测到的很近的未来,会有项目对程序中tcp协议的接口进行性能测试,为了避免到时候两眼一抹黑,在领导的压力下 oh 不,应该是自身积极主动的推进下,进行未雨绸缪的测试活动 tcp sample了解 新建一个tcp sample 配置 tcp 信息 TCPClient classname: 填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.protocol.tcp.sampler. TCPCli

cagezxy的博客 3795

jmeter执行接口报"status":500,"error":"Internal Server Error","exception":"java.lang.IllegalArgumentExcep"

jmeter执行接口,响应报如下: {“timestamp”:“2020-05-12 10:16:51”,“status”:500,“error”:“Internal Server Error”,“exception”:“java.lang.IllegalArgumentException”,“message”:“JWT must have 3 tokens”,“path”:"/detection/api/user/saveOrUpdate"} 原因:请求头未添加动态认证数据 解决方法: 去使用正则替换写死

测试入坑之路 1万+

jmeter查看结果报文_JMeter-JMeter TCP 测试(发送16进制报文)

******************************************************************************1、新建线程组,然后添加,TCP取样器2、TCP取样器设置:端口号 xxxxx 、connect/response Timeout 、3、关于发送16进制的报文当前JMeter支持HEX形式,也就是16进制的报文输入配置当前支持三种格式 :1....

weixin_33506900的博客 2139

jmeter(十一):TCP Sampler

目录 TCP Sampler结构: jmeter进行tcp请求测试的步骤: 运行server.py文件,启动server端 添加线程组 添加View Results Tree 添加TCP Sampler 设置TCP Sampler 执行并查看结果树 TCP请求主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换。IP协议可以进行IP数据包的分割和组装,但是通过...

每天进步一点点 6522

【鸿蒙实战开发】HarmonyOS申请调试签名证书过程

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

HarmonyOS_002的博客 3561

Jmeter tcp 压测实践

项目需要针对socket协议接口进行性能测试。选定了比较熟悉的 Jmeter 工具,现记录下过程。Jmeter 提供了3个Tcp实现类:这是实现文本消息交换的基本类。在TCP取样器中,Text to send字段提供不同字符集的文本常量或可变字符串信息。这是一个用于实现文本信息交互的类。Text to send字段中提供十六进制编码的二进制文本常量或变量信息。这个类跟上一个的类似,但是在发送数据之前会加一个二进制的字节长度数据前辍。

nhb687096的博客 2310

ROS水下仿真神器uuv_simulator:从零搭建水下机器人测试环境(附Gazebo配置全流程)

本文详细介绍了如何使用ROS和uuv_simulator从零搭建水下机器人仿真测试环境,包括Gazebo配置全流程。通过系统环境准备、水下世界构建、机器人模型定制开发等步骤,帮助开发者在虚拟海洋环境中高效验证算法,大幅降低研发成本。特别适合水下机器人研发人员参考。

ujm5678901的博客 263

用jmeter压测tcp

在工作中有个接口是tcp协议的,然后需要压测一下,就想到jmeter有现成的tcp取样器,百度了一下,压测流程大致和http差不多,需要注意的是tcp请求的一些设置,在此记录一下~

weixin_44857268的博客 7846

从理论到实践:使用Sigrity SystemSI完成DDR4信号完整性仿真全流程解析

本文详细解析了使用Sigrity SystemSI完成DDR4信号完整性仿真的全流程,从核心挑战到实战操作。文章深入探讨了DDR4信号完整性问题,介绍了SystemSI工具链的演进与分工,并提供了从前期准备到高级技巧的详细指南,帮助工程师有效解决DDR4设计中的信号完整性问题。

weixin_30505225的博客 511

YOLO-FastestV2从零部署到移动端推理实战手册

本文详细介绍了YOLO-FastestV2从零开始的完整部署流程,涵盖环境搭建、模型训练、格式转换及移动端部署。通过实战步骤,指导开发者将这一轻量级目标检测模型成功部署到Android设备,实现实时推理。文章重点解析了PyTorch到NCNN的模型转换与优化,助力移动端AI应用开发。

l1k9j8h7g6的博客 668

jmeter TCP接口压力测试

启动jmeter,添加线程组、TCP取样器、察看结果树 1.添加线程组 2.添加TCP取样器 3.添加监听器察看结果树 配置TCP取样器参数信息 1.TCPClient classname:报文格式,分3种: org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl:普通文本传输 org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl:十六进制报文 org.apache.jmeter.pro

viola_M的博客 1万+

Hifiasm参数调优实战:当N50不理想时的7个排查方向与解决方案

本文详细解析了Hifiasm参数调优实战,针对基因组组装中N50不理想的7个排查方向与解决方案。通过调整--hom-cov、-D、-N等核心参数,结合HiFi数据和参考基因组分析,有效提升组装质量。文章以猪毛菜基因组为例,展示了从2.1MB到4.3MB的N50优化过程,为生物信息学研究者提供实用指南。

weixin_30642561的博客 426

jmeter进行tcp压测的脚本编写

,因为这个结束符只有在-128到127之间才有效,而我们的结尾字节算出来是155超过了支持的范围,超过范围的计算步骤如下:以十六进制9b,十进制155为例。5)Re-use connection:表示是否重复使用该连接发送请求,如果勾选,表示可以共用一个socket。(3)计算步骤2中的数据位1100101的十进制为101,符号位1为负数,因此最终计算结果为-101。(2)计算该二进制的补码(最高位-符号位为1表示这是一个负数,0表示正数,(1)计算标记位的二进制--10011011。

abcmiao123456的博客 1507

光度立体三维重建——光源标定

光源标定的目的是为了确定光源方向或强度,一般利用物体表面的明暗信息、阴影信息或者反射特性三类信息中的其中一种即可,也可以将三种信息结合。采用不同标定物,是利用不同标定物的反射特性获取更加精确的光源信息。

wfengzi5的博客 1561

手把手教你用FPGA实现SGMII接口:从IP核配置到板级调试全流程

本文详细介绍了如何在Xilinx 7系列FPGA上实现SGMII(Serial Gigabit Media Independent Interface)接口的全流程,包括IP核配置、约束编写和硬件调试。通过具体的硬件选型建议、软件工具链配置和PCB设计规范,帮助开发者快速构建稳定可靠的千兆通信链路,并提供了常见故障排查和性能优化技巧。

weixin_29194693的博客 296

Jmeter之TCP取样器

1.在线程组中添加“TCP取样器” 2.填写数据 以下截图是必须配置的 TCPClient classname: 填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.protocol.tcp.sampler. TCPClientImpl:普通文本传输,可设置他的编码格式(eg:json串) BinaryTCPClientImpl:十六进制...

weixin_33826268的博客 1055

自动识别象棋棋子的OpenCV应用

在计算机视觉领域,OpenCV是一个广泛应用的开源计算机视觉库,它提供了丰富的图像处理和分析工具。本文将介绍如何使用OpenCV实现自动识别象棋棋子的功能,并提供相应的源代码。通过以上代码,我们可以实现对棋盘图像中棋子的自动识别。需要注意的是,以上代码只是一个简单的示例,实际应用中可能需要根据具体情况进行参数调整和算法优化,以获得更好的识别效果。函数利用预处理后的图像,寻找图像中的轮廓,并根据轮廓的面积筛选出可能的棋子轮廓,最后在原图像中提取棋子区域。在主程序中,我们读取输入图像,并调用。

WzisTypescript的博客 908
上一篇: fiddler如何设置抓取谷歌浏览器页面HTTPS的请求
下一篇: Jmeter和jdk的下载和安装
Max__lu
博客等级 码龄6年 3粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值