用jmeter压测tcp

这篇具有很好参考价值的文章主要介绍了用jmeter压测tcp。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

最开始的基础配置

1.根据需求改一下配置文件,根据需求看看自己要发的是哪一种请求,直接在配置文件里搜索一些tcp,设置成对应的参数,
用jmeter压测tcp用jmeter压测tcp

参数的意思:
TCP Sampler提供了3个报文编码类型的实现,分别是

org.apache.jmeter.protocol.tcp.sampler. TCPClientImp

org.apache.jmeter.protocol.tcp.sampler. BinaryTCPClientImpl

org.apache.jmeter.protocol.tcp.sampler. LengthPrefixedBinaryTCPClientImpl

1)TCPClientImpl以文本编辑器中所编辑的纯文本为内容进行发送。—这个是默认的,如果就是这个就不用改了

2)BinaryTCPClientImpl以文本编辑器中所编辑的16进制字符(hex)内容为基础转换为二进制的 字节内容进行发送。

3)LengthPrefixedBinaryTCPClientImpl在BinaryTCPClientImpl基础上默认以发送内容的长度为 字节前缀进行填充

需要注意的是,配置完需要重启一下 生效。

配置完开干

2.我按需求改成第3个参数,兴致勃勃的发起请求,结果链接失败,请教了开发,原来我们这个接口参数前面还加了一些参数,总之如果在tcp请求你去弄就是超级麻烦,所以我就换了个思路,用beanshell处理器先处理要请求的数据,再在tcp请求里直接引入就好了。。

处理的数据是把字符串转换成十六进制的,然后也是直接在放入数据时这一步参数化了(我看还有一种方法是直接把数据转换好放在csv里。。也可以嘛,都行)

String json ="xxxxx";

public static String toHexString(String str){
        StringBuffer hexString = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            int ch = (int) str.charAt(i);
            String strHex = Integer.toHexString(ch);
            hexString.append(strHex);
        }
        return hexString.toString();
    }
vars.put("data", toHexString(json));

用jmeter压测tcp
在beanshell里面处理完拿到data数据,再在tcp取样器中直接用了,就直接用了它默认的报文编码类型,然后就看到客户端调用成功了。
用jmeter压测tcp

调通以后踩到的坑

3.虽然调用成功,但是我发现多发几次明明客户端收到请求也正常返回了,但是取样器结果Response code:500
百度了一些说因为未配置 「结束符」 所致,只有当客户端在取响应流中读到 「结束符」 才会认为本次业务完成,否则会一直阻塞,直到流被关闭。
useEolByte这个字段 ,配置一下,比如我这个请求是十六进制,最后两位是0a,那么这个需要转换成十进制的,就是 10

用jmeter压测tcp
给它填上,每次请求完,就直接结束,不会再阻塞了。
一个转换的工具网页https://tool.oschina.net/hexconvert/
用jmeter压测tcp

一些思考

4.然后因为我就压这一个接口,所以正常压就可以了。但是如果是多个tcp接口压测可能就不是这么简单了,(因为它要握手握手握手不知道啥时候松手),百度了一下,大概是这样的:如果有很多tcp接口,且都是有规律的,可以在Re-use connection和关闭链接这里设置一下,:
其他的都勾选Re-use connection, 表示大家都可以共用一个socket,最后一个勾关闭链接,tcp执行完就关闭了
用jmeter压测tcp

如果不知道参数长啥样

5.最开始我不确定我发的这个tcp协议的请求是长啥样的,也用了一下wireshark,平时都用的fiddler,很久很久没测过http协议以外的了,但是tcp还得用这个小鲨鱼才抓得到,打开数据实在太多了,可以用过滤器筛选想要的数据,直接筛选tcp协议的端口吧
tcp.port==XXX

找到直接要的那条数据,右键追踪流,然后点tcp流

用jmeter压测tcp
弹出来一个框框,把下面的数据改成原始数据,然后就能拿到这个tcp协议本来的样子了,
用jmeter压测tcp
复制出来,放在tcp工具里调用一下,能调通就说明拿对了,然后再在jmeter里调吧~


笔记大概就这么多吧。。如果后面还有再继续写上来文章来源地址https://www.toymoban.com/news/detail-408497.html

到了这里,关于用jmeter压测tcp的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • “Jmeter WebSocket协议压测”,助你轻松应对高并发场景!

    目录 引言 背景说明 步骤1:安装插件JMeter WebSocket Samplers 步骤2:采集器使用 步骤3:脚本执行  结语 在当今高并发的网络环境下,WebSocket协议已经成为了最受欢迎的实时通信技术之一。 然而,对于开发人员来说,如何有效地压测WebSocket协议仍是一个挑战。 Jmeter是一款功能强

    2024年02月14日
    浏览(25)
  • jmeter+nmon+crontab简单的执行接口定时压测

    临时接到任务要对系统的接口进行压测,上面的要求就是:压测,并发2000 在不熟悉系统的情况下,按目前的需求,需要做的步骤: 需要有接口脚本 需要能监控系统性能 需要能定时执行脚本 针对第一点:接口脚本 需要观察系统接口的情况: 系统使用swagger文档编辑接口,这

    2024年02月10日
    浏览(35)
  • jmeter工具测试和压测websocket协议【杭州多测师_王sir】

    一、安装JDK配置好环境变量,安装好jmeter 二、下载WebSocketSampler发送请求用的 ,地址:https://bitbucket.org/pjtr/jmeter-websocket-samplers/downloads/?spm=a2c4g.11186623.2.15.363f211bH03KeI 下载解压后的jar包放到D:JMeterapache-jmeter-3.3libext目录下 三、如果需要在jmeter中安装那么就需要下载jmeter的插件

    2024年02月13日
    浏览(31)
  • jmeter -获取cookie管理器中的cookie值用于压测接口

    背景: 由于任务的原因,需要针对某个接口进行压测。但是压测这个接口时,需要获取用户的身份信息。如果先通过登录再进行压测的话,没有办法给出针对这个接口的压测数据。所以需要想办法直接将用户的身份信息(cookie+token)提前拿到,直接赋给压测的接口。 token可以

    2024年02月08日
    浏览(79)
  • Jmeter 压测接口返回大量数据时吞吐量上不去问题记录

            近期需要对外部提供一个批量查询接口,接口逻辑并不复杂,只是返回的数据有点多。分页查询,最大查询100个单子,分页单页最大值没有限制,那么,极端情况下,就是一次查询100个单子,每个单子 6 种节点,每一个节点可以保存最大 10 张图片地址信息,单次

    2024年02月02日
    浏览(31)
  • Jmeter验证码图片识别注册接口压力测试实战_压测时,登录需要传图形验证码

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月22日
    浏览(42)
  • 压测工具Jmeter学习

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等。 除了Jmeter外,其它常

    2024年02月10日
    浏览(27)
  • 基于jmeter完成压测

    ✅作者简介:大家好,我是Cisyam,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Cisyam-Shark的博客 💞当前专栏: 程序日常 ✨特色专栏: MySQL学习 🥭本文内容:基于jmeter完成压测 🖥️个人小站 :个人博客,欢迎大家访问 📚个人知识库: 知识库

    2024年02月06日
    浏览(76)
  • jmeter随记2:压测

    简述 关于压测,jmeter更直观的作用是用来编写压测脚本【请求和压测策略】,然后在linux服务器上执行,也可以在本地执行,压测执行脚本在启动jmeter服务的时候,会打印出执行压测的命令 一、压测步骤 step1: 编写jmeter脚本,以及压测策略 a、若想压的接口很多 且都是相同域

    2024年02月15日
    浏览(24)
  • jmeter压测步骤

    参考:使用Jmeter压测的第一个接口 第一步,在测试计划里添加一个线程组(要压测的接口名称),如图所示,在测试计划里右键--添加--线程--线程组就可以了。 第二步,设置线程组参数,如下图所示。 第三步,添加请求,在线程组上右键--添加--取样器--HTTP请求,具体参数如

    2024年02月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包