压力测试工具Jmeter5.X快速入门实战

接口压测和常用压力测试工具对比

  • LoadRunner
    性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于笨重,功能比较繁多。

  • Apache AB(单接口压测最方便)
    模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单DDOS攻击等。

  • Webbench
    webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父进程做最终的统计结果。

  • Jmeter
    开源免费,功能强大,在互联网公司普遍使用

    压测不同的协议和应用

    1. Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
    2. SOAP / REST Webservices
    3. FTP
    4. Database via JDBC
    5. LDAP 轻量目录访问协议
    6. Message-oriented middleware (MOM) via JMS
    7. Mail - SMTP(S), POP3(S) and IMAP(S)
    8. TCP等等

    使用场景及优点
    1)功能测试
    2)压力测试
    3)分布式压力测试
    4)纯Java开发
    5)上手容易,高性能
    6)提供测试数据分析
    7)各种报表数据图形展示

压测工具本地快速安装Jmeter5.x

使用环境:需要安装JDK8 以上
快速下载: https://jmeter.apache.org/download_jmeter.cgi.
压力测试工具Jmeter5.X快速入门实战_第1张图片
文档地址: http://jmeter.apache.org/usermanual/get-started.html.

Jmeter5.x目录文件讲解和汉化操作

打开压缩包目录显示如下:
压力测试工具Jmeter5.X快速入门实战_第2张图片
bin:核心可执行文件,包含配置

  • 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快速入门实战_第3张图片

Jmeter5.X基础功能组件介绍线程组和Sampler

  • 添加->threads->线程组(控制总体并发)

    线程数:虚拟用户数。一个虚拟用户占用一个进程或线程

    准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,比如100个线程,20秒,则表示20秒内 100个线程都要启动完成,每秒启动5个线程

    循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环
    压力测试工具Jmeter5.X快速入门实战_第4张图片

  • 线程组->添加-> Sampler(采样器) -> Http (一个线程组下面可以增加几个Sampler)

    名称:采样器名称
    注释:对这个采样器的描述

    web服务器:
    默认协议是http
    默认端口是80
    服务器名称或IP :请求的目标服务器名称或IP地址
    路径:服务器URL
    压力测试工具Jmeter5.X快速入门实战_第5张图片

  • 查看测试结果

    线程组->添加->监听器->察看结果树
    线程组->添加->监听器->聚合报告

    察看结果树:
    压力测试工具Jmeter5.X快速入门实战_第6张图片
    聚合报告:压力测试工具Jmeter5.X快速入门实战_第7张图片

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快速入门实战_第8张图片

Jmeter5.x实战之压测结果聚合报告

测试发起400000请求,吞吐量6600+;测试过程中发现,当发起250000请求时,吞吐量已不在提升。
压力测试工具Jmeter5.X快速入门实战_第9张图片
注意:
接口的性能影响因素很多:机器的配置如CPU、内存、当前负载情况等,还有网络带宽因素影响,只能尽量减少影响因素。

你可能感兴趣的:(Jmeter)