https://www.cnblogs.com/shimo/articles/9341667.html
https://blog.csdn.net/woshilishu/article/details/86589558
目录
1、操作步骤 和 参数说明
1.1、修改jmeter的配置文件
文件位置:D:\Jmeter\apache-jmeter-2.6\bin\jmeter.properties
修改TCP Sampler,如下图就可以了
1.2、在jmeter中新建TCP采样器
1.3、参数设置
名称:随便写
1、TCPClient classname: 与配置文件保持一致。缺省为 org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl。TCPClient只能实现基于文本格式的套接字应用的测试。
随JMeter提供的还有另外的两个实现,分别是BinaryTCPClientImpl和LengthPrefixedBinaryTCPClientImpl,用于处理二进制格式的数据。
用 BinaryTCPClientImpl 进行测试详情见:
jmeter 进行 tcp测试 02----实战篇----BinaryTCPClientImpl
2、ServerName or IP: 套接字服务器应用的地址
3、Port Number: 套接字服务器应用的端口
4、Re-use connection: 如果选中,连接会一直处于打开状态,否则读取到数据之后就关闭
5、Close connection: 如果选中,在TCP Sampler运行完毕之后就会被关闭
6、Set NoDelay:是否使用 Nagle 算法,使用 TCP_NODELAY 选项可以禁止 Nagle 算法,此时,应用程序向内核递交的每个数据包都会立即发送出去。是否需要使用该选项,需要跟实际的业务情况结合。
7、SO_LINGER:该配置项用于控制在关闭连接之前是否要等待缓冲区中的数据发送完成。如果SO_LINGER选项指定了值,则在得到关闭连接的请求之后还会等待指定的秒数以完成缓冲区中数据的发送,在指定的SO_LINGER秒数完成后,关闭连接。因此,如果你把该选项设置成0,那么所有连接在收到关闭连接的时候都会立即关闭,避免产生很多处于TIME_WAIT状态的套接字。
8、Connect Timeout:与服务器套接字应用连接超时时间(毫秒)。
9、Response Timeout:响应超时时间(毫秒),这个值的设置跟End of line(EOL) byte value有关系,如果End of line(EOL) byte value中的值设置不正确或没有设置,会导致JMeter一直在等待无法结束,但是如果指定了Response Timeout这个值的话,在到达这个值的时候就关闭连接。
10、End of line(EOL) byte value:判断读数据行结束的byte值。比如服务器端返回的字符串都是以回车符结尾,那么我们可以将该选项设置成10。这里值得注意的是,这是个十进制的值(千万不要写成hex),比如你可以查询ASCII表,来确认一个表示结束字符的十进制值,如果你指定的值大于127或者小于-128,则会跳过EOL检测。没有设置EOL将会一直读到输入流结束为止。
.
11、Text to Send:发送的文本,跟“CSV dataset config”一起使用能够从文件中直接读取。
12、Username和Password:这两个选项在TCP相关的Sampler中都未使用,请忽略这两个选项。
2、tcp测试的2个核心点
关于Jmeter的TCP测试,需要明确两个问题:
由于篇幅受限,更加详细的内容见:jmeter 的tcp脚本如何编写
第一、发送给服务器的数据格式,是文本形式还是十六进制格式;
第二、一条数据的结束符是什么;
问题1涉及:到底用哪个TCPClient classname去发送数据。
问题2涉及:
- (1)发送给服务端的数据,服务端是怎么判断客户端发送结束;
- (2)服务端返回给客户端的数据,客户端如何知道服务端已经发送结束。
所以这就有客户端读数据的结束符号和服务端读取数据结束符号2个。
上面这些如果你不清楚的话,是需要你和开发去确认的。