jmeter性能测试(2)——实战

news/2025/3/31 20:15:12/文章来源:https://www.cnblogs.com/zz0124/p/18799736

一、单接口性能测试(同一用户进行压力测试)

  • POST http://49.233.201.254:8080/cms/manage/loginJump.do
  • POST data:userAccount=admin&loginPwd=123456

  • 按100 压力测试

(1)在线程中修改虚拟用户数

  • 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  • Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要50秒钟启动500个线程,也就是每秒钟启动10个线程。
  • 循环次数:每个线程发送请求的次数。如果线程数为500,循环次数为2,那么每个线程发送2次请求。总请求数为500*2=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
  • Delay Thread creation until needed:直到需要时延迟线程的创建。
  • 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
  • 持续时间(秒):测试持续时间,会覆盖结束时间
  • 启动延迟(秒):测试延迟启动时间,会覆盖启动时间
  • 启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
  • 结束时间:测试结束时间,持续时间会覆盖它。

(2)添加查看结果树

(3)添加聚合报告

1.聚合报告参数详解:

  • Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

  • Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
  • Median:中位数,也就是 50% 用户的响应时间
  • 90% Line:90% 用户的响应时间
  • 95% Line:90% 用户的响应时间
  • 99% Line:90% 用户的响应时间
  • Min:最小响应时间
  • Max:最大响应时间
  • Error%:错误率——错误请求数/请求总数
  • Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
  • KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

2.一般而言,性能测试中我们需要重点关注的数据有:

#Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量

二、单接口性能测试(不同用户进行压力测试)

(1)登录接口设置变量

(2)后台造数据用户(10个)

(3)通过前置处理中的用户参数或csv data config

(4)在线程中设置虚拟用户

(5)查看结果树,聚合报告,图形报告,表格报告

  • 查看结果树

  • 聚合报告

  • 表格报告

  • 图形报告


三、一个场景的接口测试(压力测试同一用户)

场景:登录接口,

POST http://49.233.201.254:8080/cms/manage/loginJump.do

POST data:userAccount=admin&loginPwd=123456

用户查询成功

POST http://49.233.201.254:8080/cms/manage/queryUserList.do

POST data:startCreateDate=&endCreateDate=&searchValue=&page=1

(1)将两个接口填入到jmeter 或录制到jmeter中

(2)将接口调通:加cookie,加请求头等

(3)填写虚拟用户数和等待时间


四、性能场景测试(不同用户一个场景压力测试)

(1)前置处理中添加用户参数,导入用户

(2)填写查询用户接口

(3)接口有依赖关系,添加cooike值

(4)添加查看结果树,聚合报告


五、并发测试

同一时间,同一个点进行接口测试

  • 集合点的概念:loadrunner中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作实现性能测试的最终目的。jmeter

中使用Synchronizing Timer实现Lr中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。

1、线程组右键 -> 定时器 -> Synchronizing Timer

2、参数设置

  • a. Number of Simulated Users to Group by: 此处填写并发数量
  • b. Timeout in milliseconds: 超时时间设置

Jmeter默认没有超时时间,如果没有设置,一旦没有达到集结数量的请求系统就一直等待。

计算超时时间方法参考: 并发数量 * 1000毫秒/ 线程数/在多少时间启动这么多线程

10*1000/(10/10)=10000

  • 定时器作用域

作用于该定时器之后的所有请求,也就是说定时器实在请求执行前起作用的并发数和线程数一致时,并发启动时间,一定要大于线程组启动,如果小于这个时间,并发数量不准确。

(注意:线程组整理的启动时间单位是秒,定时器里的等待时间是:毫秒 ,要注意单位换算,1秒=1000毫秒)


六、基准测试(稳定测试)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908201.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025全国青少年信息素养大赛报名指南(内附报名全流程)

2025全国青少年信息素养大赛报名指南 (内附报名全流程)2025 年预估初赛在 28 万~32 万人次左右,今年竞争会比较激烈,大家提前备考,NOI官网发布了“关于参加CSP-J/S认证需符合年龄条件的公告”,报名参加CSP-J/S的被认证者在当年9月1日(不含)需满12周岁,包括第一轮和第…

Codeforces Round 1013 (Div. 3)(前5)

比赛链接 A:Olympiad Date 让我们开始一个数字计数器 cnt[i] ( 0≤i≤9) 3≤cnt[0],1≤cnt[1],2≤cnt[2], 1≤cnt[3],1≤cnt[5] 答案已找到。如果在计算所有数字之后,没有满足其中一个条件,则没有解决方案,答案为 0. 代码如下 #include <bits/stdc++.h> using namesp…

【题解】E - Replace

背景 这把报了 UnRated 从 E 开始看,于是非常惨烈的只拿下了 E。这个 2054 难度的题居然只有绿。E - Replace 题意 给你两个字符串 \(s,t\),你每次可以把 \(s\) 中的一种字符换成另一种,求把 \(s\) 变成 \(t\) 的最小操作数,可能无解。 思路 我们先考虑无解怎么判:可以得到…

质数筛——欧拉筛

欧拉筛 核心思想 和数只被它最小的质因数筛去 prime_number是当前小于i的所有质数集合 p是prime_number的元素,当没有找到最小质因数pi时,p是j的最小质因数,j可以被筛去,当找到最小质因数时就要退出循环,否则不能保证p是j的最小质因数 算法的时间复杂度:O(n),到n的所有和…

索引的分类

远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克吐温按「数据结构」分类:B+tree索引、Hash索引、Full-text索引。 按「物理存储」分类:聚簇索引(主键索引)、二级索引(辅助索引) 按「字段特性」分类:主键索引、唯一索引、普通索引、前缀…

Linux基本使用-3

常用快捷键使用ctrl + c ==> 强制停止,结束当前命令运行或清空已输入命令ctrl + d ==> 退出登出,退出当前登录账户或退出程序history ==> 查看历史命令!命令前缀 ==> 自动匹配上一个命令ctrl + r ==> 搜索历史命令ctrl + a|e ==> 光…

评论夸一夸功能

评论夸一夸功能原文:https://www.tianyubk.com/863.html效果图1. 新建CSS文件 ​项目根目录/resouces/插件/小工具/评论​ (可以新建上述目录)新建 kuakua.css​ 文件 .kuakua-first-box {margin: auto;width: 440px;border-radius: 16px;bottom: auto;min-height: 10rem;le…

执行一条SQL请求的过程

远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克吐温大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如…

pikachu-RCE

exec "ping" 注入方式和DVWA靶场 - Command Injection一致 exec "evel"通过代码可以看出用户输入的信息未经过任何过滤被直接执行 尝试传入phpinfo();

位运算的操作

代码展示: #include <iostream> using namespace std;int main() {int n, m;cin >> n >> m;while (m--) {int op;cin >> op;if (op == 1) {int x;cin >> x;cout << ((n >> x) & 1) << endl;} else if (op == 2) {int l, …

将本地代码上传至github进行代码管理

博客地址:https://www.cnblogs.com/zylyehuo/

从静态报表到动态大屏

在当今信息爆炸的时代,数据可视化技术已经成为企业决策、业务分析、科学研究等领域不可或缺的重要工具。从最初的静态报表到如今的动态大屏,数据可视化技术经历了翻天覆地的变化,不仅提高了数据处理的效率,还极大地丰富了数据的呈现方式和交互体验。本文将深入探讨数据可视…