您的位置:首页 - 文章 - 随笔 - 正文

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

    • 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.
    在这里插入图片描述
    文档地址: http://jmeter.apache.org/usermanual/get-started.html.

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

    打开压缩包目录显示如下:
    在这里插入图片描述
    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基础功能组件介绍线程组和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请求时,吞吐量已不在提升。
    在这里插入图片描述
    注意:
    接口的性能影响因素很多:机器的配置如CPU、内存、当前负载情况等,还有网络带宽因素影响,只能尽量减少影响因素。

本文原创,作者:西决,其版权均为品创网络所有。如需转载,请注明出处:https://www.sxpcwlkj.com/010/

发表评论