Jmeter安装部署及压力测试- QPS量化方法


前言

在接口开发完成后,需要对接口的性能做测试,QPS,吞吐量这些性能指标需要量化,经过技术调研,采用jmeter完成线下线上的压力测试。(接口的功能测试,推荐使用apifox)


一、Jmeter是什么?

Apache JMeter™应用程序是开源软件,一个 100% 纯 Java 应用程序,旨在加载测试功能行为和测量性能 。它最初是为测试 Web 应用程序而设计的,但后来扩展到其他测试功能。

二、下载安装

官方下载地址:https://jmeter.apache.org/download_jmeter.cgi

1.macbook pro 本地安装

1.1采用homebrew安装

  • 快速安装brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
  • 安装jmeter
(base) valley@wensMacBook-Pro ~ %  brew install jmeter
  • 查看安装版本
(base) valley@wensMacBook-Pro ~ % jmeter -v
WARNING: package sun.awt.X11 not in java.desktop
    _    ____   _    ____ _   _ _____       _ __  __ _____ _____ _____ ____
   / \  |  _ \ / \  / ___| | | | ____|     | |  \/  | ____|_   _| ____|  _ \
  / _ \ | |_) / _ \| |   | |_| |  _|    _  | | |\/| |  _|   | | |  _| | |_) |
 / ___ \|  __/ ___ \ |___|  _  | |___  | |_| | |  | | |___  | | | |___|  _ <
/_/   \_\_| /_/   \_\____|_| |_|_____|  \___/|_|  |_|_____| |_| |_____|_| \_\ 5.4.3

Copyright (c) 1999-2021 The Apache Software Foundation
  • 启动jmeter
(base) valley@wensMacBook-Pro bin % jmeter
WARNING: package sun.awt.X11 not in java.desktop
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================
  • 遇到问题
    • 当保存jmx等文件时报错如下
      Uncaught Exception java.lang.IllegalAccessError: class com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge$DetailsTableModel (in unnamed module @0x341b80b2) cannot access 
      class sun.awt.shell.ShellFolder (in module java.desktop) because module java.desktop does not export sun.awt.shell to unnamed module @0x341b80b2 in thread Thread[AWT-EventQueue-0,6,main]. See log file for details.
      
    • 解决办法
      打开JMeter->选项->外观->选择其他主题(darklaf相关主题存在问题,可以设置为Nimbus)操作

1.2采用压缩包直接安装

  • 下载地址:
    • https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz

2.Linux 线上安装

2.1采用压缩包直接安装

下载地址:https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz

三、创建测试计划实现并发压力测试

1.创建线程组

  • 配置当前采样错误后后续采样的行为

  • 配置线程属性

    • Number of Threads(users):并发用户数
    • Ramp-up period(seconds):决定多长时间启动所有线程,0代表同时并发.一般设置ramp-up=线程数启动,并上下调整到所需的. 总之,是否能确定一个适当的ramp-up time 取决于以下两条规则:第一个取样器的点击率(hit rate)是否接近其他取样器的平均值,从而能否避免ramp-up period 过小。在最后一个线程启动时,第一个线程是否在真正结束了,最好二者的时间要尽可能的长,以避免ramp-up period过大。
    • Loop Count 循环次数

    以下截图为100QPS配置
    线程组配置-100QPS

2.创建请求

  • 配置请求http IP port method path等
    配置请求

2.1创建请求头

  • 配置请求头
    配置请求头

2.2创建View Results Tree

  • 添加View Results Tree,主要是可以看到每个采样请求的结果,配合断言,更清楚的看到请求成功或者失败
    添加View Results Tree

2.3创建Summary Report

  • 添加Summary Report,运行后的结果指标如下:
    结果

2.4创建Aggregate Report

  • 添加Aggregate Report,运行后的结果指标如下:
  • agg

2.5创建Graph Results

  • 添加Graph Results,运行后的结果指标如下:
  • 图形结果

2.6创建Constant Throughput Timer

在这里插入图片描述

2.7创建JSON Assertion

在这里插入图片描述

3.导出jmx文件

导出jmx

4.线上运行

  • 进入JMeter安装目录下 ,并以命令方式执行脚本
  • 命令格式:./bin/jmeter -n -t .jmx文件(脚本) -l .jtl文件(测试运行结果文件)
    参数说明:
      -n表示以nogui方式运行测试计划
      -t表示测试计划,后面跟测试计划名称
      -l表示测试结果,后面跟测试结果文件名称
./bin/jmeter -n -t /home/test_code/adx_plan001.jmx  -l /home/test_result/test0311.jtl

5.线下分析

将test08131505.jtl导入测试计划查看结果即可。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、QPS配置说明

20QPS配置

  • Constant Throughput Timer设置:
    • In sample per minute :1200
  • 线程组设置:
    • 线程数:20
    • 准备时长: 10
    • 循环次数:10

40QPS配置

  • Constant Throughput Timer设置:
    • In sample per minute :2400
  • 线程组设置:
    • 线程数:40
    • 准备时长: 10
    • 循环次数:10

80QPS配置

  • Constant Throughput Timer设置:
    • In sample per minute :4800
  • 线程组设置:
    • 线程数:80
    • 准备时长: 10
    • 循环次数:10

注意:真实情况下由于准备时长设置的偏差,QPS会有一些偏差,但是根据聚合报告中的95%响应时间和吞吐量可以衡量服务的性能情况。


总结

以上就是今天要讲的内容,本文主要是介绍Jmeter安装,创建接口测试计划,以及对接口的不同QPS压力测试的配置。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

blackoon88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值