使用Jmeter自动化压测TCP Server经验

使用Jmeter自动化压测TCP Server经验

• Jmeter简介
• Jemter的主要功能
• Jmeter TCP发送方式
• Jmeter 测试TCP配置
• Jmeter快速上手使用


1、Jmeter简介

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。


2、Jmeter的主要功能

  1. 能够对HTTP和FTP服务器进行压力 和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
  2. 完全的可移植性和100% 纯java。
  3. 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
  4. 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
  5. 精心的GUI设计允许快速操作和更精确的计时。
  6. 缓存和离线分析/回放测试结果。

3、Jmeter TCP发送方式

Jmeter TCP发送有三种启用方式:

• TCPClientImpl:文本数据,默认为这种
• BinaryTCPClientImpl:传输16进制数据,指定包结束符。这种16进制文件会通过Jmeter GUI来转换
• LengthPrefixedBinaryTCPClientImpl:数据包中前2个字节为数据长度。可在bin/jmeter.properties配置文件中tcp.binarylength.prefix.length设置。

在启动jmeter之前,需要在在启动文件中设置,如下:
//#---------------------------------------------------------------------------
//# TCP Sampler configuration
//#---------------------------------------------------------------------------
//# The default handler class
#tcp.handler=TCPClientImpl
tcp.handler=BinaryTCPClientImpl


4、Jmeter 测试TCP配置

TCP配置参数表:
使用Jmeter自动化压测TCP Server经验_第1张图片

  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中都未使用,请忽略这两个选项。

5、Jmeter快速上手使用:

先右键建立一个线程组,然后在线程组里设置线程数(用户数)和循环次数(用户执行动作的循环次数),然后右键线程组选择添加Http请求,在里面选择服务器名称端口号等,最后右键添加聚合报告(Aggregate Report ),点击运行后查看运行结果。

使用Jmeter自动化压测TCP Server经验_第2张图片

你可能感兴趣的:(嵌入式开发)