虽然目前大部分的接口都是HTTP协议的,但是在工作中还是少不了TCP/IP协议的接口需要进行测试,我们也称长连接测试。下面从两个方面来了解一下Jmeter的TCP协议的测试。
1. 使用Jmeter进行常规的TPC连接设置时的配置参数都是哪些?
- 首先打开Jmeter,右键线程组添加取样器-选择TCP取样器进入到TCP取样器配置界面:
- 第二步进入到TCP连接的配置页面:
各个参数值以及含义: 1、名称,可自定义取样器的名称。 2、Jmeter原生支持的消息体类型,一共有三种类型: a:org.apache.jmeter.protocol.tcp.sampler. TCPClientImp 以纯文本为内容进行发送 b:org.apache.jmeter.protocol.tcp.sampler. BinaryTCPClientImpl 以文本编辑器中所编辑的16进制字符(hex)内容为基础转换为二进制的 字节内容进行发送 c:org.apache.jmeter.protocol.tcp.sampler. LengthPrefixedBinaryTCPClientImpl 在BinaryTCPClientImpl基础上默认以发送内容的长度为 字节前缀进行填充 3、服务器的ip地址:也就是你要链接到那个服务器的IP地址 4、服务开放的端口:需要连接的服务器对应端口号 5、超时时间:设置超时时间后,在多少ms内没有收到响应就会响应失败; 6、重用连接:选择后建立的连接保持打开状态(前提是Jmeter进程在持续运行,比如你设置100线程数,循环一次,当100线程数跑完后,相当于任务结束,Jmeter会自动断开连接) 7、关闭连接:当选择之后,每运行完一个线程就会把响应的连接关闭,相当于是运行一个关闭一个 8、设置无延迟: 9、行尾字节值:比较重要,是Jmeter读取服务器返回内容时候结束标志的判断。它表示的是服务端发送的最后一个字符的ascii码,如果不写或者写的不正确的话,在读取流的时候无限阻塞,直到超时。比如,如果服务器端返回的最后一个字符是"\n",那么该位置就要填写10 10、要发送的文本:根据选择的TCP Client classname 来填写对应的要发送的文本信息 11、用户名核密码:默认在现实中不使用
2. 如何保持长连接?
- 保持长连接的基本条件为线程持续工作:
- 1、设置普通线程组,比如线程数设置100,循环设置为永远,Jmeter将在核服务器建立连接之后,保持这100个连接通道,通过这100个链接通道,持续的发送消息(这里需要在TPC取样器中 设置选择 重用连接),如果我们要建立10000个连接,那么就需要设置10000个线程数:
- 2、设置阶梯压测线程组(可以同时观察接口的压力),在添加线程组的时候选择阶梯压测线程组:该线程组如果无法添加的话可以查看这篇文章:什么是阶梯式压测?
添加完线程组后开始配置线程组。比如配置最终希望起30000个线程,5s后开始启动,第一次启动200个线程,往后每3秒启动200个线程一直到线程数达到30000,之后保持稳定运行1800s,之后每1秒停掉5个线程,直到所有线程停止完毕: 在开始停掉线程之前,所有建立的连接通道都是保持连接的。我们可以通过这种方式来简单的查看一下,这种条件下最大能够保持的连接数。当然也可以尝试,在不同的服务器上启动Jmeter程序,同时建立TCP连接,来观察客户端和服务端能够保持的最大连接数。
客户端能创建和服务端能接收的连接数各是多少??
在进行测试的时候要明确: ①、客户端能创建的连接是多少?比如一个jemter进程,最多能创建的线程数是多少? ②、服务端能接收的连接数是多少?比如服务端能接受20000连接,但是Jmeter只能创建10000,当超过10000的时候Jmeter就会出现无响应状态,就说明客户端到达了一定的瓶颈,但是服务端还能再继续接收来自客户端的连接数。
|