• 性能调优|Jmeter工具使用简记


    前言

           Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。 JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。from [百度](https://baike.baidu.com/item/Jmeter/3104456?fr=aladdin)

    使用场景

           常规的性能测试中,常用的性能测试工具中,Jmeter绝对是必选好用的利器之一,使用Jmeter可以快速模拟大并发,多线程场景,从而可以快速知道接口的吞吐量,性能瓶颈接口

    安装

            window环境

           下载链接:https://archive.apache.org/dist/jmeter/binaries/ 查找对应版本(window x64),本文以5.4.3版本为例,我们只需要关注安装路径下的/bin目录的jmeter.properties、system.properties文件

    安装文件

            jmeter.properties

    • 修改为中文显示
    language=zh_CN
    
    • 1
    • 修改远程连接主机
    remote_hosts=123.12.33.205:1099,123.12.33.206:1099 #分布式远程环境下使用该配置,多台主机用逗号分开,若是本地压测,忽略此配置
    
    • 1
    • 剔除ssl配置
    server.rmi.ssl.disable=true
    
    • 1

            system.properties

    • Jmeter回调地址
    java.rmi.server.hostname=123.12.34.54 
    # 分布式环境下需要注意,本地测试可以忽略 若jmeter部署在远端服务器,
    # 需要修改此项配置,该ip来源于本地电脑ip(若是内网,请填写内网ip),部署远端服务器的Jmeter在本地控制,则远端的Jmeter会回调本地控制的ip
    
    • 1
    • 2
    • 3

    本地压测

            场景一:纯本地压测,无部署服务到远端(此处远端指本地以外的其他机器)

            右键以管理员身份启动jmeter-server.bat批处理脚本,等待启动

            启动过程

    [外链图片转存中...(img-blog.csdnimg.cn/5ebe0d9df6664d98a3f1dc07ff4a9cfa.png)

    在这里插入图片描述

            页面简单描述

    在这里插入图片描述

            >常见添加项(菜单栏-》文件-》新建测试计划-》右键添加):

    • 线程组

            如下图,着重介绍下线程属性:指定线程数50 每个线程执行1s,循环次数可选永远,调度器:设置50线程持续跑600秒

    在这里插入图片描述

    • csv数据文件设置

            如下图,设置路径,与变量名(具体用法后面继续介绍),文件类型可以是TXT也可以是CSV,或者XML

    在这里插入图片描述

    • Http请求头

            如下图,Http请求头设置,一般与那个Http监听器同一层级,就是设置该Http,若都是同一层级,则默认设置所有请求头,如图中此请求头,设置了《开始发货(预售)》和《HOLD单中点击开始发货》两项Http请求头

    在这里插入图片描述

    • Http请求

            如下图,设置基本的请求参数,注意此处变量与CSV文件相对应

    在这里插入图片描述

    • 设置响应断言

            如下图,设置200为请求成功的标志

    在这里插入图片描述

    • 设置监听器

            如下图,设置聚合报告等各种报告监听器,重点查看接口指标吞吐量

    在这里插入图片描述

    • 本地启动

            如下图,本地启动Jmeter对目标接口压测

    在这里插入图片描述

            场景二:远程压测,本地gui页面控制,已部署服务到远端

            有时候,我们往往需要多台压测机器同时对某个接口施压,以达到最大压测效果,为此需要部署分布式的压测环境,然后通过本地的页面gui对分布式压测环境进行控制(启停),页面直接连接所有分布式压测机器

    在这里插入图片描述

            分布式压测原理简图

    在这里插入图片描述

  • 相关阅读:
    RabbitMQ: topic 结构
    Docker Swarm + Harbor + Portainer 打造高可用,高伸缩,集群自动化部署,更新。
    软件定义的云安全实践
    【Spring Boot 集成应用】RocketMQ的集成用法(下)
    基于PHP的互联网送水平台
    k8s集群安装v1.20.9后-1-部署自己的服务k8sApp
    .NET 10 桌面 UI 框架的范式演进:Jalium.UI 与 MewUI 架构深度对比
    R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的方差(使用.符号和~符号指定函数语法purr)
    如何使用libswscale库将YUV420P格式的图像序列转换为RGB24格式输出?
    学习Cmake
  • 原文地址:https://blog.csdn.net/xianghe_qqq/article/details/127725824