JMeter教程

JMeter教程

1.什么是JMeter

Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。
适用的测试领域:

  • 用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
  • JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。
  • Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java对象,数据库和查询,FTP服务器等等)的性能进行测试。
  • 接口测试
  • 数据库压力测试
  • 批量产生测试数据

2.JMeter下载

下载地址:
https://downloads.apache.org/jmeter/binaries/
解压配置环境变量
注意:一定要安装JDK(最新的JMeter需要jdk1.8)并配置环境变量

3.启动JMeter的两种方式

  • bat
  • jar

4.JMeter工作界面的介绍

4.1添加线程组

在这里插入图片描述
在这里插入图片描述
线程组中常用的一些设置:

  • 线程数:这里就是指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统,如果想模拟100个用户,则此处输入100。
  • Ramp-Up Period (in seconds): 虚拟用户增长时长。
  • 循环次数:该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。
4.2添加http请求

线程组-添加-Sample-HTTP请求
在这里插入图片描述

  • IP地址
  • 端口号
  • 请求方法
  • 请求参数:
    Parameters、Body Data
    由于POST请求方式,如果不设置Headers的content-type,基本默认会以 application/x-www-form-urlencoded 方式提交数据。为了Post请求确保传的是json格式,还需要在请求头中声明一下请求参数的格式为json,具体操作如下:
    Thread Group右键Add-Config Element-HTTP Header Manager,打开HTTP信息头管理器,Add一个Name为Content-Type,Value为application/json,如下图,一个json格式的post请求完成了

5.运行脚本查看响应结果

5.1查看结果树

在这里插入图片描述

5.2查看聚合报告

在这里插入图片描述
聚合报告参数:

  • Label:每个请求的名称,比如HTTP请求等
  • #Samples:发给服务器的请求数量
  • Average:平均响应时间
  • Median:中位数,也就是50%用户的响应时间
  • 90% Line ~ 99% Line:90% ~99%用户的响应时间
  • Min:最小响应时间
  • Maximum:最大响应时间
  • Error%:本次测试中出现的错误率,即 错误的请求的数量/请求的总数
  • Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction
  • Received KB/src:每秒从服务器端接收到的数据量
  • Sent KB/src:每秒从客户端发送的请求的数量

6.非GUI模式

使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资。
命令介绍:
jmeter -n -t <testplan filename> -l <listener filename>
示例含义:则表示以命令行模式运行testplan.jmx文件,输出的日志文件为test.jtl
在这里插入图片描述

7.JMeter常用插件

7.1下载地址:jmeter-plugins.org

安装:下载后文件为plugins-manager.jar格式,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。
在这里插入图片描述

  • Installed Plugins(已安装的插件):即插件jar包中已经包含的插件,可以通过选中勾选框,来使用这些插件;
  • Available Plugins(可下载的插件):即该插件扩展的一些插件,可以通过选中勾选框,来下载你所需要的插件;
  • Upgrades(可更新的插件):即可以更新到最新版本的一些插件,一般显示为加粗斜体,可以通过点击截图右下角的Apply Changes and Restart Jmeter按钮来下载更新;
  • PS:一般不建议进行更新操作,因为最新的插件都有一些兼容问题,而且很可能导致jmeter无法使用(经常报加载类异常)!
    建议使用jmeter的3.2版本来尝试更新这些插件。
7.2 Transactions per Second

即TPS:每秒事务数,性能测试中,最重要的2个指标之一。该插件的作用是在测试脚本执行过程中,监控查看服务器的TPS表现————比如整体趋势、实时平均值走向、稳定性等。

在这里插入图片描述
三、Response Times Over Time
事务响应时间,性能测试中,最重要的两个指标的另外一个。该插件的主要作用是在测试脚本执行过程中,监控查看响应时间的实时平均值、整体响应时间走向等。
在这里插入图片描述
四、PerfMon Metrics Collector
即服务器性能监控数据采集器。在性能测试过程中,除了监控TPS和TRT,还需要监控服务器的资源使用情况,比如CPU、memory、I/O等。该插件可以在性能测试中实时监控服务器的各项资源使用。
下载地址:http://jmeter-plugins.org/downloads/all/
在这里插入图片描述
其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的插件,ServerAgent是服务端的插件。
下载成功后,复制JmeterPlugins-Extras.jar和JmeterPlugins-Standard.jar两个文件,放到jmeter安装文件中的lib/ext中,重启jmeter,即可看到该监视器
在这里插入图片描述
将ServerAgent-2.2.1.jar上传到被测服务器,解压,进入目录,Windows环境,双击ServerAgent.bat启动。
linux环境执ServerAgent.sh启动,默认使用4444端口。
更改端口:java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 5555 --tcp-port 5555。

8.json提取器

在这里插入图片描述
Variable names:保存的变量名,后面使用${Variable names}引用
JSON Path expressions:调试通过的json path表达式
Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有)
Default Values:找不到时默认值,一般设置为NOT FOUND
Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”

9.录制脚本

1.打开浏览器手动代理设置
在这里插入图片描述
2.在JMeter中添加线程组
3.添加HTTP代理服务器
添加非测试原件->HTTP代理服务器,并设置端口号(可以通过netstat -ano查看电脑中未使用的端口号)、选择目标控制器(选中前面的线程组)
并且添加排除模式
然后开始录制
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值