1.tcp取样器相关知识:

使用JMeter对套接字进行测试,有以下的选项可以做控制:

  1. TCPClient classname: 缺省的org.apache.jmeter.protocol.tcp.sampler。TCPClientImpl, TCPClient只能实现基于文本格式的套接字应用的测试。随JMeter提供的还有另外的两个实现,分别是BinaryTCPClientImpl和LengthPrefixedBinaryTCPClientImpl,用于处理二进制格式的数据,后文将对这两个做详细的介绍。
  2. ServerName or IP: 套接字服务器应用的地址
  3. Port Number: 套接字服务器应用的端口
  4. Re-use connection: 如果选中,连接会一直处于打开状态,否则读取到数据之后就关闭
  5. Close connection: 如果选中,在TCP Sampler运行完毕之后就会被关闭
  6. SO_LINGER:该配置项用于控制在关闭连接之前是否要等待缓冲区中的数据发送完成。如果SO_LINGER选项指定了值,则在得到关闭连接的请求之后还会等待指定的秒数以完成缓冲区中数据的发送,在指定的SO_LINGER秒数完成后,关闭连接。因此,如果你把该选项设置成0,那么所有连接在收到关闭连接的时候都会立即关闭,避免产生很多处于TIME_WAIT状态的套接字。
  7. End of line(EOL) byte value:判断行结束的byte值,如果你指定的值大于127或者小于-128,则会跳过EOL检测。比如服务器端返回的字符串都是以回车符结尾,那么我们可以将该选项设置成10。
  8. Connect Timeout:与服务器套接字应用连接超时时间(毫秒)。
  9. Response Timeout:响应超时时间(毫秒),这个值的设置跟End of line(EOL) byte value有关系,如果End of line(EOL) byte value中的值设置不正确,会导致JMeter一直在等待无法结束,但是如果指定了Response Timeout这个值的话,在到达这个值的时候就关闭连接。
  10. Set NoDelay:是否使用Nagle算法,是否需要使用该选项,需要跟实际的业务情况结合。
  11. Text to Send:发送的文本,跟“CSV dataset config”一起使用能够从文件中直接读取。
  12. Username和Password:这两个选项在TCP相关的Sampler中都未使用,请忽略这两个选项。

2.关于Jmeter的TCP接口测试,需要明确两个问题:

第一发送给服务器的数据格式,是文本形式还是十六进制格式;

第二一条数据的结束符是什么;

3.明确问题1后对Jmeter进行配置

(1).修改JMeter启动配置,就是前文提到的指定BinaryTCPClientImpl适配
在jmeter.properties文件中找到如下部分,修改一下
#---------------------------------------------------------------------------
# TCP Sampler configuration
#---------------------------------------------------------------------------
# The default handler class
#tcp.handler=TCPClientImpl
tcp.handler=BinaryTCPClientImpl
关于tcp.handler,jmeter支持的有三种模式:
根据要发送的数据格式选择对应的classname
(2)设置结束符--->如果不设置,tcp会以流的形式,一直读取,直到超时,报500错误
源码如下:
只有读到了结束符,才会break出来;
若以文本形式发送,且以\n作为结尾,EOL配置为10,文本添加换行符
4.若服务器接到的数据没有结尾符时,需要对Jmeter进行二次开发,覆写TCPClient classname,来满足测试的要求,请参考另一篇博客Jmeter TCP socket接口测试(二)


Jmeter TCP socket接口测试(一)相关推荐

  1. C# Socket编程(5)使用TCP Socket

    TCP 协议(Transmission Control Protocol,传输控制协议)是TCP/IP体系中面向连接(connection oriented)的传输层(transport layer) ...

  2. C# 的tcp Socket设置自定义超时时间

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

  3. 转Go语言TCP Socket编程

    授权转载: Tony Bai 原文连接: https://tonybai.com/2015/11/17/tcp-programming-in-golang/ Golang的主要 设计目标之一就是面向大 ...

  4. golang TCP Socket编程

    Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分.在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均 ...

  5. java tcp read_【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)(转)...

    书上示例 在第一章<基本套接字>中,作者给出了一个TCP Socket通信的例子--反馈服务器,即服务器端直接把从客户端接收到的数据原原本本地反馈回去. 书上客户端代码如下: 书上的服务器 ...

  6. 【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)(转)...

    书上示例 在第一章<基本套接字>中,作者给出了一个TCP Socket通信的例子--反馈服务器,即服务器端直接把从客户端接收到的数据原原本本地反馈回去. 书上客户端代码如下: 1 2 3 ...

  7. TCP socket编程记录(C语言)

    最近使用到TCP的socket编程,记录一下思路. TCP Socket 服务器编程思路 0.初始化套接字库 1.创建套接字----------2个(服务器本身需要一个套接字,客户端要返回一个套接字) ...

  8. Go语言TCP Socket编程

    2019独角兽企业重金招聘Python工程师标准>>> Go语言TCP Socket编程 Golang的 主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不 ...

  9. 使用Jmeter进行http接口测试

    使用Jmeter进行http接口测试 前言: 本文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此 ...

最新文章

  1. python读取进程内存_Python读取Linux内存进程错误(/ proc / $pid / mem...
  2. win10安装kafka
  3. python精通多长时间_学Python需要多久能学会?精通Python需要多长时间?
  4. 数据库设计(概念、步骤)
  5. iOS之Socket的使用-AsyncSocket
  6. 开发html5单页用什么框架,GitHub - mmcai/single-page-react-h5: 基于React框架的单页活动框架,可以基于此代码上进行相关的H5活动等相关内容的开发...
  7. LeetCode - Convert Sorted Array to Binary Search Tree
  8. qt使用自带的日志输出实例输出日志时,在日志中显示行数
  9. 三星S10+真机上手视频流出:屏下指纹让强迫症不忍直视
  10. 我的git仓库,顺记github配置
  11. java容易搞混的技术_Java中比较容易混淆的知识点
  12. Linux system函数返回值
  13. GDAL升级到3.0之后遇到的坑
  14. Android 热补丁之 Tinker 原理解析
  15. 解析库的基本使用(BeautifulSoup、Xpath(重点)、PyQuery)
  16. filezilla server 下载、安装、配置教程(包含新版使用配置)
  17. pyaudio 声音处理
  18. 能领拼多多优惠券的app
  19. 为什么我的iPhone上的某些iMessages绿色和某些蓝色?
  20. python绘制单线图_施工角度简析如何画好管道单线图

热门文章

  1. 利用计算机运算符编写检索式,计算机信息检索过程中常用的检索表达式
  2. ARouter使用(管用)
  3. 基于SSM的农产品交易平台设计
  4. 《计算机科学导论》一导读
  5. VirtualBox问题——无法在父文件夹中创建虚拟文件夹
  6. 拒绝成为比尔·盖茨的“万维网之父”,又要干大事!
  7. 怎样才能让百度搜索到自己的csdn博客
  8. 企业内软件资产管理的必要性
  9. 如何清除系统垃圾文件?
  10. Java web入门——Servlet