Jmeter性能测试

Jmeter性能测试

一、性能测试介绍

1、什么叫做性能测试?


(1)通过某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试
(2)指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试

2、性能测试的时间?

在功能测试完成后才能进行性能测试

3、为什么要做性能测试?


(1)评估系统的能力,
(2)识别体系中的弱点
(3)验证稳定性
(4)系统调优


4、性能测试的流程?

(1)性能需求分析 (标准)

(2)性能计划的编写
(3)性能场景的设计
(4)脚本的开发(录制脚本)
(5)性能环境和数据
(6)性能执行

(7)结果分析(是否标准)
(8)性能总结报告

(9)性能调优

5、性能的类型有哪些?

(1)基准测试
在给系统施加较低压力时,查看系统的运行状况并记录相关数作为基础参考
(2)负载测试(慢慢接近临界点测试)

负载测试是对被测系统不断增加压力(即用户并发数),直至性能指标超过预期或者某项资源使用达到饱和状态(就是加压到系统崩溃)

(3)压力测试(也称为破坏性测试)(超过临界点测试)
压力测试:压力测试是系统在一定饱和状态下,例如cpu、内存、磁盘I/O在饱和使用情况下,不断给系统施加压力,看系统的处理能力,以及系统是否会出现错误。
(4)稳定性测试
稳定性测试是在给系统施加一定压力,持续运行一段时间(7*24),观察系统能否稳定运行。(也可以说是长时间的压力测试)

(5)并发测试
并发测试:并发测试是模拟多用户并发访问同一个应用、模块或者数据记录时可能发生的性能问题(如内存泄漏、线程锁和资源占用方面的问题)

 6、性能测试常用的工具有哪些?


(1)jmeter   轻量级工具,免费,开源, (我们讲解的)
(2)loadrunn   商业版,收费,不易于安装,一个包4g包


7、性能测试文档包含哪些?


(1)性能测试测试计划

(2)性能场景设计用例

(3)性能报告

8、性能测试报告包含哪些内容?


(1)测试背景
(2)测试目的
(3)测试范围
(4)测试环境
(5)压测指标
(6)性能测试结果

(7)性能问题归纳

(8)性能调优

图片

二、熟悉性能报告

图片

 2. 性能问题

    •       (1) 提现申请接口3-5个线程并发时,容易引起死锁现象,经优化后,Tps达到224左右,且没有死锁现象出现;
    •           (2) 账单查询接口,优化索引前,响应时间为8s左右,Tps为11;优化索引后,响应时间缩短为0.15秒左右,Tps升为560左右



三、认识jmeter



(1)jmerer是一个什么工具?


Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 

(2)详细讲解jmeter目录下常用文件有哪些? 


bin目录:核心可执行文件
jmeter.bat:windows启动文件
 

图片

jmeter-server.bat:分布式压测使用的启动文件 

图片

jmeter.properties:核心配置文件 examples(例子):该目录下存放Jmeter官方给的请求模板

图片



report-template(报告模板):该目录下存放Jmeter的报告模板 templates(模板):该目录下存放Jmeter的各类配置模板 例如:JDBC、Beanshell等 

图片

(3)性能测试是生产环境还是测试环境?


性能测试要搭建性能环境,(不在测试环境和生产环境进行性能测试) 因为性能环境考验模拟线上环境,达到1:1比例; 通过造数据,jmeter 造大量数据,存储造大量数据 


(4)jmeter 作性能测试的缺点?


jmeter 的缺点是压力值不能精确控制,难以适应高并发情况,由于是java编写,本身比较消耗资源。 

(5)jmeter和loadrunner 的区别?


a.loadrunner 是一种预测系统行为和性能的负载测试工具。

b.loadrunner 能够最大限度地缩短测试时间,优化性能和加速应用系统的发布周期的商业工具 

c、jmeter 是开发源代码项目,可以进行接口测试和性能测试的工具,
d、相对loadrunnrt是一个轻量级的工具,便于安装

 

获取接口的方式:

第一种:

抓包:写入接口fiddler或f12

图片

第二种方式 :

录制脚本工具badboy 录制

1.点击安装包

图片

图片

图片

2.快捷方式到桌面

图片

图片

3.点击打开badoy

图片

4.导出接口

图片

图片

5.将录制的接口导入到jmeter种

图片

图片

图片

第三种方式:

jmeter中有反向代理录制脚本

1.工作中添加http代理服务器

图片

2.编辑代理服务器

图片

(1)端口号

端口:

默认为8888,可修改。但要注意,端口不能被其它程序占用,端口信息要与浏览器设置保持一致。

cmd.exe中使用如下命令检查端口使用情况:

1)netstat -an    --列出本机所有使用端口信息

2)netstat  -aon|findstr "8888"  --查询端口是否被占用

3)tasklist|findstr "8888"  --查询对应端口被什么程序占用

端口号:8888(默认)改成不常用的端口号避免端口号冲突;如8800

目标控制器:使用录制控制器(默认)后面根据情况进行更改

图片

如上就是没有占用

2.操作浏览器(打开浏览器)

图片

3.打开代理,填写参数

图片

图片

4.开启jmeter中的代理

图片

5.启动后就在页面访问,录制到接口

图片

图片

以上是录制了所有的功能

要录制的要排除不需要的接口

图片

测试计划 -> http代理服务器 -> requests filtering -> 排除模式 ,录制时排除在外的内容:

.*\.(js|css|PNG|jpg|ico|png|gif).*

图片

图片

实战性能

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

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)添加聚合报告

图片

图片

聚合报告参数详解:

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

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

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

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

(1)登录接口设置变量

图片

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

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

图片

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

图片

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

图片

(6)查看结果树结果

图片

(7)聚合报告

图片

(8)表格报告

图片

(9)图形报告

图片

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

一个场景:登录接口,

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.填写查询用户接口

图片

4.接口有依赖关系,添加cookie值

图片

5.添加查看结果树,聚合报告等

图片

二. 并发测试

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

图片

图片

集合点的概念:

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.rhkb.cn/news/43405.html

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

相关文章

OpenCV基础——梯度计算、边缘检测、图像金字塔

接上期: OpenCV基础——图像滤波和形态学操作-CSDN博客 一.梯度计算 上贴已经讲过,梯度可以浅显地理解为图像中发生颜色变化的局部区域,也即边界点。本质上是通过构造与卷积核相同的矩阵,计算边缘区域像素点的差异值——也即梯度…

英语学习笔记1

目录 第一部分 例句解析 句子一 原文:Learning English is never easy but always rewarding!翻译:学习英语从来都不容易但总是有回报的! 句子二 原文:Sometimes the detailed work of understanding grammar and building v…

测试测试 测试

**非常详细的视频和文字教程,讲解常见的openmv教程包括 巡线、物体识别、圆环识别、阈值自动获取等。非常适合学习openmv、K210、K230等项目 视频合集链接在 openmv教程合集 openmv入门到项目开发 openmv和STM32通信 openmv和opencv区别 openmv巡线 openmv数字识别教…

CSS rem、vw/vh、less

目录 分辨率、视口与二倍图 一、分辨率与像素基础 1. 物理像素(Physical Pixels) 2. 逻辑像素(CSS 像素) 二、视口(Viewport)控制 1. 视口类型 2. 设置理想视口 三、二倍图(Retina/HiD…

【数电】半导体存储电路

组合逻辑电路输入和输出之间是确定关系,与之前的历史记录没有任何关系。时序逻辑电路则有相应的存储元件,要把之前的状态保存起来。 要构成时序逻辑电路,必须要有相应的存储元件,第五章讲述相应的存储元件 一、半导体存储电路概…

OPPO手机如何实时翻译会议视频?视频翻译轻松应对多语言场景

在全球化日益深入的今天,跨语言沟通已成为职场和生活中的常见需求。无论是参加国际会议、观看外语视频,还是与海外客户交流,语言障碍都可能成为效率的绊脚石。幸运的是,OPPO手机凭借其强大的功能和智能化设计,为用户提…

28_跨域

目录 promise promise的基本语法 async await try catch promise 静态方法 跨域 跨域的解决方案 1-cors ​编辑 2-jsonp方案 3-代理服务器 promise promise 是一个es6新增的语法 承诺的意思 作用:是专门用来解决回调地狱!!!! promise的基本语法 // 基本语法:// Pr…

LeetCode Hot100 刷题笔记(4)—— 二叉树、图论

目录 一、二叉树 1. 二叉树的深度遍历(DFS:前序、中序、后序遍历) 2. 二叉树的最大深度 3. 翻转二叉树 4. 对称二叉树 5. 二叉树的直径 6. 二叉树的层序遍历 7. 将有序数组转换为二叉搜索树 8. 验证二叉搜索树 9. 二叉搜索树中第 K 小的元素 …

【漏洞复现】Apache Tomcat partial PUT文件上传反序列化漏洞复现(CVE-2025-24813)

❤️博客主页: iknow181 🔥系列专栏: 网络安全、 Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 0x00 免责声明 本文所述漏洞复现方法仅供安全研究及授权测试使用;任何个人/组织须在合法合规…

BurpSuit抓包失败-基础配置

问题描述:当开启拦截抓包的时候,burpsuite没有反应,好不容易经过一通配置,浏览器出现无法访问的情况。 解决办法: 下载浏览器插件 首先下载一个代理转换插件:Omega,这样比较方便,…

求解AX=XB 方法

一、简介 一文浅谈旋转变换:旋转矩阵、旋转向量、欧拉角、四元数-CSDN博客 在机器人学、计算机视觉和几何学中,经常会遇到求解矩阵方程 AXXB 的问题。这种方程通常出现在坐标系变换、手眼标定(Hand-Eye Calibration)等场景中。理…

AnimateCC基础教学:随机抽取获奖名单及奖品-V1.0原型版

舞台界面设计: 主轴第一帧代码: this.btnObj.addEventListener("click", updateStage.bind(this)); createjs.Ticker.addEventListener("tick", updateRandom.bind(this)) var _this this; var bPlaying false; var nameList ["张三…

深入了解Linux内核:task_struct结构详解

Linux 操作系统的广袤世界里,进程管理宛如一座大厦的基石,支撑着整个系统的稳定运行与高效运转 。而task_struct结构体,无疑是进程管理这座大厦的核心支柱,它承载着进程的关键信息,贯穿于进程从诞生到消亡的整个生命周…

IsaacLab最新2025教程(7)-引入IK solver控制机器人

机器人控制可以直接给定关节角进行驱动实现功能,完成任务,但是关节角不是很直观而且做teleoperation或者是结合VLA模型时候,用eef pose会更符合直觉一些,isaacsim用的是LulaKinematics,因为IsaacLab现在是ETHZ的团队在…

Vue——常用指令总结、指令修饰符、v-model原理、computed计算属性、watch监听器、ref和$refs

文章目录 一、概念理解二、指令1. 常用内置指令总结2. 常用指令修饰符3. 自定义指令4. v-model原理表单类组件封装 三、补充1. computed计算属性2. watch监视器3. ref和$refs 一、概念理解 【事件处理函数】 事件处理函数应该写到一个跟data同级的配置项(methods&a…

求职笔试题

PDD 最长公共子序列 1143-最长公共子序列 class Solution:def longestCommonSubsequence(self, text1: str, text2: str) -> int:"""二维动态规划"""m, n len(text1), len(text2)# dp [[0]* (n1)] * (m1) 这种写法错误,m1行…

【Ragflow】6. Ragflow-plus重磅更新:增加用户后台管理系统

概述 Ragflow本身并不包含用户管理的功能,我在系列前文中,写过一个脚本,用来批量插入用户,并自动加入团队,配置默认模型设置。然而,此方式需要用户安装对应环境,对普通用户并不友好。 因此我开…

什么是贴源库

贴源库的定义与核心概念 贴源库(Operational Data Store, ODS)是数据架构中的基础层,通常作为数据仓库或数据中台的第一层,负责从业务系统直接抽取、存储原始数据,并保持与源系统的高度一致性。其核心在于“贴近源头”…

MSTP+VRRP三层架构综合实验

一、实验目的 掌握VLAN、VRRP、STP和Eth-Trunk的基本配置方法。 实现内网与外网的通信,并确保网络的高可用性和冗余性。 理解DHCP、OSPF和NAT在网络中的应用。 二、实验环境 网络拓扑:如图所示,包含两台三层交换机(SW1、SW2&a…

未来村庄智慧灯杆:点亮乡村智慧生活​

在乡村振兴与数字乡村建设的时代进程中,未来村庄智慧灯杆凭借其多功能集成与智能化特性,已成为乡村基础设施建设领域的崭新焦点,为乡村生活带来了前所未有的便利,推动着乡村生活模式的深刻变革。​ 多功能集成:一杆多能…