在MAC上使用JMeter进行性能测试

一. JMeter介绍

Apache JMeter是Apache组织开发的基于Java的压力测试工具。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

二. JMeter安装

1. 安装JDK

参考官网

2. 安装JMeter
  1. 直接访问官网下载编译好的版本。

  2. 解压(建议至/Applications 目录)后目录结构如下图:
    在这里插入图片描述

  3. 添加环境变量

    1. 打开 ~/.bash_profile文件
    2. 添加以下指令:
      export JMETER_HOME=/Applications/apache-jmeter-5.2.1/bin
      export PATH=$JMETER_HOME:$PATH:.
    3. 执行source ~/.bash_profile使环境变量生效
  4. 执行jmeter -v出现下图内容则安装成功
    在这里插入图片描述

三. 启动JMeter

  1. 执行jmeter,将启动JMeter,在终端会有如下输出:
    在这里插入图片描述
    在输出中提示不能使用图形界面进行负载测试,只能创建和调试测试计划,负载测试需要执行如下命令:
    jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
    另外提示需要增加JVM的Heap配置去满足自己的测试需求。
  2. 在终端启动JMeter后会自动打开图形界面,如下图:
    在这里插入图片描述
    可操作菜单Options => Choose Language => Chinese 进行中文语言的切换:
    在这里插入图片描述

四. 模拟压测环境

  1. docker安装nginx
    docker run --name nginx-load-test -p 87:80 -d nginx
  2. curl 发送请求
    curl 'http://localhost:87'
    输出如下,说明nginx安装成功:
    在这里插入图片描述
  3. 监控nginx运行状态
    docker stats nginx-load-test
    在这里插入图片描述

五. 创建测试计划

  1. 点击文件=》新建,创建测试计划。
    在这里插入图片描述

  2. 右键“测试计划”,选择“添加=》线程=》线程组”
    在这里插入图片描述

3.设置线程数为“3000”
在这里插入图片描述

  1. 右键“线程组”,选择“添加=》取样器=》http请求”
    在这里插入图片描述

  2. 设置http请求的路径为http://localhost:87
    在这里插入图片描述

  3. 右键“线程组”,选择“添加=》断言=》响应断言”
    在这里插入图片描述

  4. 设置响应代码为200
    在这里插入图片描述

  5. 右键“线程组”,选择“添加=》监听器=》观察结果树”
    在这里插入图片描述

  6. 点击顶部的执行按钮(绿色三角符),验证执行结果,在观察结果树可看到执行的记录
    在这里插入图片描述
    10.点击保存,测试计划创建完成

六. 运行测试计划

执行命令jmeter -n -t ./Test_Plan.jmx -l result.txt -e -o report

Test_plan.jmx:测试计划文件
result.txt:测试记录
report:测试报告保存目录

输出如下则执行成功
在这里插入图片描述

七. 看懂测试报告

进入至report目录,用浏览器打开index.html

在这里插入图片描述

中间Statistics部分是聚合报告,测试报告的主要指标集中在这一部分,下面是指标的详细说明:

  1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
  2. Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
  3. Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
  4. Median:中位数,也就是 50% 用户的响应时间
  5. 90% Line:90% 用户的响应时间
  6. Min:最小响应时间
  7. Max:最大响应时间
  8. Error%:本次测试中出现错误的请求的数量/请求的总数
  9. Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
  10. KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值