Jmeter socket接口测试
一、Socket简介
什么是socket呢?我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把
TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。socket通信模块示意图
如下:

二、TCP Sampler相关知识
我们先来看一下取样器的界面,然后再做详细介绍。

Name:组件的名称,可以自定义;
TCPClient classname:指定TCP发送报文的格式,后面会给出详细介绍;
Server Name or IP:服务器的地址;
Port Number:服务器的端口号;
Connect Timeout:与服务器套接字应用连接超时时间(ms),如果设置了,读取超时会终止请求;
Response Timeout:响应的超时时间(ms),设置后,响应时间达到该值,无论是否响应成功都会关闭连接;
Re-use connection:如果选中,连接会一直处于打开状态,否则读取到数据之后就关闭;
Close connection: 如果选中,在TCP Sampler运行完毕之后就会被关闭;
Set NoDelay:是否使用Nagle算法;
SO_LINGER:该配置项用于控制在关闭连接之前是否要等待缓冲区中的数据发送完成。如果SO_LINGER选项指
定了值,则在得到关闭连接的请求之后还会等待指定的秒数以完成缓冲区中数据的发送,在指定的SO_LINGER秒
数完成后,关闭连接。因此,如果你把该选项设置成0,那么所有连接在收到关闭连接的时候都会立即关闭,避免
产生很多处于TIME_WAIT状态的套接字。
End of line(EOL) byte value:判断行结束的byte值,如果你指定的值大于127或者小于-128,则会跳过EOL检测。
Text to Send:发送的报文
Login Configuration:根据官网文档解释,TCP相关请求默认不使用此项。
三、接口测试实战
在进行TCP接口测试之前,首先要搞清楚两个问题:
1.发送的报文格式是什么样的?
2.发送的报文结束符是什么?
TCPClient classname支持三种类别:
TCPClientImpl:文本传输,TCP请求中默认的类;
BinaryTCPClientImpl:用来发送十六进制报文,可以将十六进制报文转换成二进制;
LengthPrefixedBinaryTCPClientImpl:继承了BinaryTCPClientImpl类所有功能,默认在BinaryTCPClientImpl类前面增加两个字节数据长度。
本次项目中,发送的是定长的XML格式报文。所谓定长,就是在报文的头部定义一段数字来获取整个报文的
数据长度。这个长度是在开发过程中约定好的,如果不传,TCP请求是无论如何也不会成功。报文是XML格式,
所以结束符为 > 。
发送的报文为XML格式,我们需要去jmeter安装目录找到jmeter.properties,修改tcp.handler的值为
TCPClientImpl并去掉前面的#号。这里需要注意,TCP请求默认的文本传输编码是GBK,如果报文不是
这种编码,需要更改tcp.charset的值,我这里更改为UTF-8。

此外,根据报文格式,参照ASCII对照表确定End of line(EOL) byte value的值为62。整体测试参数配置如下:

单条数据跑通后,调整Thread Group中的线程数和循环次数即可进行TCP接口压力测试了。
参考文档:https://jmeter.apache.org/usermanual/component_reference.html#TCP_Sampler
Jmeter socket接口测试的更多相关文章
- jmeter做接口测试
jmeter做接口测试有两种方式: 1. 2.
- Jmeter用于接口测试中【接口耦合关联的实现】
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...
- 性能学习之六---socket接口测试
socket协议较底层,所以是一个万能协议.socket发的是数据包,所以较难看懂. 下面我们来讲解socket接口测试. 大致思路为:新建sever端和client端---建立连接---发送数据 一 ...
- Jmeter用于接口测试中,关联如何实现
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...
- 怎样用JMeter做接口测试?
本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容.这里就介绍一下如何利用JMeter做基于HTTP的web接口测试.接口也叫API(Appli ...
- 使用jmeter进行接口测试
目录 jmeter介绍 jmeter安装 修改UTF-8 jmeter主要测试组件 jmeter元件作用域与执行顺序 使用Jmeter进行接口测试 jmeter介绍 JMeter是Apache基金会J ...
- 如何用Jmeter做接口测试
Jmeter介绍&测试准备: Jmeter介绍:Jmeter是软件行业里面比较常用的接口.性能测试工具,下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库. 前期准备:测试 ...
- 使用jmeter做接口测试----柠檬不萌!
一.乱码解决方案 1.jmeter查看结果树乱码 (1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上 sampleresult.default.encoding= ...
- 使用Jmeter做接口测试(学生信息的6个接口)
使用Jmeter做接口测试,案例中涉及到接口有:获取学生信息.登录.添加学生信息.学生金币充值.获取所有学生信息.文件上传. 一.获取学生信息(get请求) 服务器名称或IP:输入被请求服务器的名称或 ...
随机推荐
- 惠普机械键盘 K10GL 使用评测
惠普机械键盘 GK100 使用评测 手感太差,不是 RGB 背光 惠普(HP) K10GL 机械键盘 有线 LED背光机械键盘 87键 混光青轴 refs https://item.jd.com/10 ...
- how to create a style element in js (many ways)
how to create a style element in js (many ways) create style in js Constructed StyleSheets CSSStyleS ...
- ServerLess & MongoDB Atlas & REST API
ServerLess & MongoDB Atlas & REST API ServerLess, Nodejs, MongoDB Atlas cloud 构建 REST API ht ...
- npm & cmd & bash & bin
npm & cmd & bash & bin bin node_modules & nested npm publish & all src files npm ...
- VP9 & AV1 & H.265
VP9 & AV1 & H.265 视频编码格式 AV1 https://caniuse.com/#search=AV1 VP9 https://caniuse.com/#search ...
- ng mock服务器数据
angualr文档 in-memory-web-api 文档 安装 yarn add angular-in-memory-web-api -S src/app/app.module.ts import ...
- Dart http库
推荐下我写的一个http库ajanuw_http 最基本的获取数据 import 'package:http/http.dart' as http; main(List<String> a ...
- GoEasy使用阿里云OSS出现的问题
前言:本人使用goeasy来实现微信小程序里面和其他人的im临时对话窗口,想要实现可以同时发送语音和视频.图片.表情包的话,就要通过goeasy关联到阿里云的存储对象. 报错:The OSS Acce ...
- NGK主网上线后内存价格上涨30倍,NGK RAM是否值得买入?
美国加州时间10月14日上午10时,NGK主网正式上线.因为市场预期向好,NGK上线以后迎来了大涨,NGK的代币价格上涨了10倍,内存价格上涨了30倍.目前,NGK上线已经有五天的时间,盘面上已经出现 ...
- 你见过老外的 Java 面试题吗 (上)?
前言 最近无聊的在逛某 tube 网站,本来想看看大家是怎么吐槽川普的,结果无意间点进了一个老外面试 Java 的视频,对于常年面试被吊打的我瑟瑟发抖,于是决定进去一探究竟. 毕竟不是专业的后台开发, ...