您的位置:首页 > 其它

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

2020-02-02 20:10 232 查看

文章目录

  • 三. 启动JMeter
  • 四. 模拟压测环境
  • 五. 创建测试计划
  • 六. 运行测试计划
  • 七. 看懂测试报告
  • 一. JMeter介绍

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

    二. JMeter安装

    1. 安装JDK

    参考官网

    2. 安装JMeter

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

    2. 解压(建议至/Applications 目录)后目录结构如下图:

    3. 添加环境变量

      打开 ~/.bash_profile文件
    4. 添加以下指令:
      export JMETER_HOME=/Applications/apache-jmeter-5.2.1/bin

      export PATH=$JMETER_HOME:$PATH:.
    5. 执行
      source ~/.bash_profile
      使环境变量生效
  • 执行

    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
    • 点赞 3
    • 收藏
    • 分享
    • 文章举报
    待到南方有嘉木 发布了4 篇原创文章 · 获赞 5 · 访问量 210 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: