【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细)

2024-03-05 04:28

本文主要是介绍【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、阶梯式场景(负载测试)

该场景主要应用在负载测试里面,通过设定一定的并发线程数,给定加压规则,遵循“缓起步,快结束”的原则,不断地增加并发用户来找到系统的性能瓶颈,进而有针对性的进行各方面的系统优化。

使用到的线程为:jp@gc - Stepping Thread Group (deprecated)

在测试计划上:右键—>添加—>线程(用户)—>jp@gc - Stepping Thread Group (deprecated)

A1

同时添加以下监视器:
HPS:每秒请求数 — jp@gc - Hits per Second
TPS:每秒事务数 — jp@gc - Transactions per Second
TRT:事务响应时间 — jp@gc - Response Times Over Time
活跃线程数— jp@gc - Active Threads Over Time
复合图查看器— jp@gc - Composite Graph

A2

针对阶梯式场景的参数配置,说明如下:

This group will start:给定的当前负载的并发用户数
First, wait for:等待XX秒后开始启动
Then start:0秒(初始化)启动XX并发用户数 — 在第几个虚拟用户启动
Next, add:每using ramp-up时间内启动XX的用户数
threads every:每次加压阶梯下用户完成启动后保持运行XX秒
using ramp-up:XX秒内完成Next, add的用户数的启动

Then hold load for:This group will start并发用户数全部启动完成后保持运行XX秒 == 所有线程运行完成后再执行XX秒

Finally, stop:每隔threads every的时间减少XX用户数
threads every:每隔XX秒减少Finally, stop的用户数

默认设置参数如下:

A3

注:
红框区域是增加线程过程,5秒钟启动10个线程,这10个线程持续运行30秒,再用5秒钟启动10个线程,这20个线程持续运行30秒

绿框区域是线程释放过程,每隔1秒停止5个并发用户数直到100个并发用户数减少为0

A4

2、波浪式场景(压力测试)

该场景主要用在分段时间压测和压力测试里面,分段时间压测比如点餐系统,一天会出现用餐高峰期、平稳期和闲时区,针对该场景我们就要设计成不同时间段的压力值不同,加压方式不同等等。

压力测试我们只需要使用一个场景,并将压测时间设置长即可,同样的测试报告也用jpgc的监视器获得

使用到的线程为:jp@gc - UItimate Thread Group

在测试计划上:右键—>添加—>线程(用户)—>jp@gc - UItimate Thread Group

A5

针对波浪式场景的参数配置,说明如下:

Start Threads Count:给定当前时间段的并发用户数
Initial Delay, sec:初始化时间,单位:秒(s)Startup Time, sec:启动时间,单位:秒(s)
Hold Load For, sec:所有并发用户数启动完成后保持运行的时长,单位:秒(s)
Shutdown Time:结束时间,单位:秒(s)

分段时间压测参数(示例):

从0秒 开始,30秒 启动 50个 虚拟用户,运行 60秒 后,10秒 停止50个虚拟用户 == 第一阶段耗时100秒

从100秒 开始,15秒 启动 200个 虚拟用户,运行 120秒 后,10秒 停止 200个 虚拟用户 == 前两个阶段总耗时 245 秒

从 245秒 开始,30秒 启动 50个 虚拟用户,运行 60秒 后,20秒 停止 100个 虚拟用户 == 前三个阶段总耗时 385秒

A6

压力测试(示例):

从0秒 开始,60秒 启动 300个 虚拟用户,运行 500秒 后,10秒 停止300个虚拟用户

A7

3、服务器监控

服务器监控插件:jp@gc - PerfMon Metrics Collector,需要在服务器安装:ServerAgent

A8

服务器资源监控线形图

A9

A10

用于监控机器的CPU、Memory、Disks I/O、Networks I/O 性能指标值

服务器性能监测控件,包括CPU,Memory,Network,I/O等等(此功能用到在需监听的服务器上启动startAgent)

根据需要选择CPU,Memory,Network I/O等

1)下载并安装ServerAgent

2)通过xftp方式把包上传到服务器上,解压
上传压缩包到服务器建议公司环境安装目录下或opt目录下
解压命令:unzip ServerAgent-2.2.3.zip
进入解压后的文件:cd ServerAgent-2.2.3
查看所有文件:ll
启动文件: ./starAgent.sh

注:启动ServerAgent时,需要ROOT权限

启动ServerAgent时,需要在其对应目录下启动
在监控服务器性能时,需要一直是启动状态

3)更改端口并启动服务

Linux 下启动:./startAgent.sh 回车就可以启动,默认的端口是4444

若默认端口4444被占用,则需要指派端口 (阿里云服务器4444端口是连接访问不到的)

端口可以自定义,大于1024即可

启动>>

./startAgent.sh --udp-port 0 --tcp-port 4445

4)启动服务后去检查防火墙是否关闭

服务器\防火墙是关闭状态那就没有问题
启动防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
检查防火墙状态:systemctl status firewalld

如果没有关闭防火墙,那么就需要关闭或执行下面的命令把端口添加到防火墙内

防火墙添加开放端口:

firewall-cmd --permanent -add-port=4445/tcp
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一份努力,都是为了让自己变得更加出色;每一次坚持,都是为了让生活变得更加精彩。坚定信念,勇敢前行,终将收获辉煌的人生。

勇敢地面对挑战,努力奋斗,只有不断超越自我,才能书写出精彩的人生篇章。坚持不懈,终将收获辉煌。

困难并不可怕,重要的是我们要敢于面对,勇敢努力,坚定信念,永不放弃,相信每一次努力都将迎来更加辉煌的明天。

这篇关于【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/775327

相关文章

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地