接口压测和常用压力测试工具对比
- LoadRunner 性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于笨重,功能比较繁多。
- Apache AB(单接口压测最方便) 模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单DDOS攻击等。
- Webbench webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父进程做最终的统计结果。
- Jmeter 开源免费,功能强大,在互联网公司普遍使用
压测不同的协议和应用
- Web – HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Webservices
- FTP
- Database via JDBC
- LDAP 轻量目录访问协议
- Message-oriented middleware (MOM) via JMS
- Mail – SMTP(S), POP3(S) and IMAP(S)
- TCP等等
使用场景及优点
1)功能测试
2)压力测试
3)分布式压力测试
4)纯Java开发
5)上手容易,高性能
6)提供测试数据分析
7)各种报表数据图形展示
压测工具本地快速安装Jmeter5.x
使用环境:需要安装JDK8 以上 快速下载: jmeter.apache.org/download_jm….

Jmeter5.x目录文件讲解和汉化操作
打开压缩包目录显示如下:

- jmeter.bat: windows启动文件(window系统一定要配置显示文件拓展名,否则找不到对应文件)
- jmeter: mac或者linux启动文件
- jmeter-server:mac或者Liunx分布式压测使用的启动文件
- jmeter-server.bat:window分布式压测使用的启动文件
- jmeter.properties: 核心配置文件
extras:插件拓展的包
lib:核心的依赖包
Jmeter语言版本中英文切换:控制台修改 menu -> options -> choose language。在软件中修改语言只是暂时的,要想长久修改需在配置文件中修改。
配置文件修改 在bin目录进入 jmeter.properties,文件默认语言为 #language=en,改为 language=zh_CN即可永久变成中文。
windows系统进入bin目录下点击 jmeter.bat进入jmeter首页。
Jmeter5.X基础功能组件介绍线程组和Sampler
- 添加->threads->线程组(控制总体并发)
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程
准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,比如100个线程,20秒,则表示20秒内 100个线程都要启动完成,每秒启动5个线程
循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环
-
线程组->添加-> Sampler(采样器) -> Http (一个线程组下面可以增加几个Sampler)
名称:采样器名称 注释:对这个采样器的描述
web服务器: 默认协议是http 默认端口是80 服务器名称或IP :请求的目标服务器名称或IP地址 路径:服务器URL
-
查看测试结果
线程组->添加->监听器->察看结果树 线程组->添加->监听器->聚合报告
察看结果树:
聚合报告:
Jmeter5.x实战之压测结果聚合报告分析
聚合报告字段解释:
lable: sampler的名称
Samples: 一共发出去多少请求,例如10个用户,循环10次,则是 100
Average: 平均响应时间
Median: 中位数,也就是 50% 用户的响应时间
90% Line : 90% 用户的响应不会超过该时间
95% Line : 95% 用户的响应不会超过该时间
99% Line : 99% 用户的响应不会超过该时间
min : 最小响应时间
max : 最大响应时间
Error%:错误的请求的数量/请求的总数
Throughput: 吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps、tps
KB/Sec: 每秒接收数据量
Jmeter5.x实战之压测结果聚合报告
测试发起400000请求,吞吐量6600+;测试过程中发现,当发起250000请求时,吞吐量已不在提升。




聚合报告: 
