0


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采用压缩包直接安装

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压力测试的配置。

标签: 压力测试 java

本文转载自: https://blog.csdn.net/blackoon88/article/details/123496202
版权归原作者 blackoon88 所有, 如有侵权,请联系我们删除。

“Jmeter安装部署及压力测试- QPS量化方法”的评论:

还没有评论