JMeter性能压测

一、JMeter入门

  1. 介绍:JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试,它可以用于测试静态和动态资源,也可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

  2. 下载并安装jmeter

    A. 前往官网下载jmeter,下载后解压即可使用,但需要本地拥有JDK环境;

    B. 安装包核心bin目录

      jmeter.bat:windows下启动文件,双击就会打开jmeter的可视化界面,还可以对该文件配置进行优化;

                     jmeter-server.bat:windows下jmeter服务器模式启动文件;

        jmeter.properties:jmeter核心配置文件,常见如下:

#Preferred GUI language. Comment out to use the JVM default locale's language.
# 设置默认语言为中文
language=zh_CN

# The encoding to be used if none is provided (default ISO-8859-1)
# 解决响应结果中文乱码问题
sampleresult.default.encoding=UTF-8

    C. Linux下运行压测:jmeter -n -t /jmeter/login-linux.jmx -l log.jtl,生成的log.jti可以用可视化界面聚合报告查看;

export JAVA_HOME=/root/jdk1.8.0_361
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export JMETER_HOME=/root/apache-jmeter-5.4.3
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin

  3. 创建测试计划(Test Plan),并保存到指定的文件夹下

    A. 测试计划是运行jmeter时需要执行的一系列步骤,至少包含一个脚本,线程组、取样器和监听器;

    B. 作用域规则:测试树元件是分等级和顺序的,从上往下依次执行的;

 

二、JMeter常用组件

  1. 线程组(Thread Group)

    A. 线程组是一系列线程的集合,每个线程代表一个用户向服务器发起请求;

    B. 线程组下可以添加取样器(sampler),支持发送HTTP和JDBC请求等;

  2. 处理器(Processors)

    A. 处理器分为前置处理器(Pre Processors)和后置处理器(Post Processors),分别用于修改请求数据,处理响应数据;

  3. 定时器(Timer)

    A. 定时器是能让性能测试更接近于真实,因为真实的业务用户请求是有一定的时间差,那么合理的设置定时器,能更好的挖掘系统的瓶颈和评估性能指标,定时器类型如下:

    B. 常数吞吐量定时器(Constat Throughput Timer):控制每分钟请求数,用于使服务器长期处于一定的压力下运行状态;

  4. 配置元件(Config Element)

    A. CSV数据文件设置:主要用于读取CSV格式的文件中数据,实现参数化

    B. HTTP信息头管理器:配置HTTP发送请求的请求头内容;

    C. 用户定义的变量;

  5. 监听器(Listener)

    A. 监听器是用来查看、保存和读取已保存的测试结果情况,默认情况下结果被保存为".jtl"格式的文件,内容还是以xml形式存在;

      B. 查看结果树:查看请求结果,绿色的代表测试通过,红色的代表失败,还可以查看请求和响应数据;

      C. 聚合报告:统计响应信息,如请求数、平均值、错误率和吞吐量等;

      D. 用表格查看结果;

      E. 响应时间图;

 

三、JMeter进阶

  1. 参数化

    A. 参数化是指根据需求动态获取数据并进行赋值,通过${变量名}来获取参数值;

    B. 使用场景:用户定义的变量在HTTP请求中使用、动态地读取登录CSV文件中用户名和密码进行迭代;

  2. 关联

    A. 关联是指将请求之间通过传递参数来建立联系;

    B. 关联方式:正则表达式提取器;

  3. 监控服务器性能

    A. 目的是用来监控服务器内存、CPU等性能参数,通过安装插件来实现;

 

可参考:Jmeter性能测试

 

posted @ 2021-09-30 15:58  如幻行云  阅读(421)  评论(0编辑  收藏  举报