jmeter性能测试

性能测试
一、性能测试介绍
1、什么叫性能测试
(1)通过某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试
(2)指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统个各项指标进行测试
2、性能测试时间?
在功能测试完成后才能进行性能测试
3、为什么要做性能测试?
(1)评估系统的能力
(2)识别体系中的弱点
(3)验证稳定行
(4)系统调优
4、性能测试流程
(1)性能需求分析(标准)
(2)性能测试计划编写
(3)性能场景设计
(4)录制脚本(bodboy或反向代理录制脚本),自己抓接口
(5)性能环境和数据
(6)性能执行
(7)结果分析
(8)性能报告
(9)性能调优
5、性能测试类型?
(1)基准测试
在给系统力时,查看系统的运行状况并记录相关数据为基础参考
比如:汽车行驶20码,查看运行状况
(2)负载测试
负载测试就是对被测系统不断增加压力(即用户并发数),直至性能指标超过预期或者某项资源使用达到饱和状态
比如:限速120 先20,50,80,100,120;
(3)压力测试(也叫破坏性测试)
压力测试:压力测试是系统在一定饱和状态下,指标的使用情况下不断给系统施加压力,看系统的处理能力,以及系统是否出现错误。
比如:限速120 ,直接达到130
(4)稳定性测试
稳定性测试是在给系统施加一定压力,持续运行一段时间(如7*24),观察系统能否文档运行。(可以理解长时间压力测试)
比如:汽车 ,行驶12小时
(5)并发测试
并发测试:模拟测试用户访问统一时间点,像同一应用或模块发起访问,查看是、否发生性能问题
比如:赛车,比赛,同一时间点,行驶同一的赛道
6、性能测试工具
(1)jmeter 轻量级、免费、开源(我们讲解)
(2)loadrun 商业版、收费、不易于安装,(一个安装包4g左右)
7、性能测试文档?
(1)性能测试计划
(2)性能场景测试用例
(3)性能报告
8、性能报告(熟悉系统报告)
(1)测试背景
(2)测试目的
(3)测试范围
(4)测试环境
(5)压测指标
(6)测试结果
(7)问题列表

二、性能准备(接口准备、数据准备)
(一)接口准备
1、在badboy是一个录制脚本工具
(1)下载badboy的工具包
(2)安装badboy
(3)输入网站,录制接口
(4)保存成jmx的后缀的文件
(5)将保存的jmx文件存导入到jmeter中
(6)在修改接口,调试接口
2、jmeter中反向代理录制脚本
(1)工作台非测试元件http代理服务器
(2)编辑录制的端口号:8888 ,录制目标:存放地址
在dos下检查:
netstat -aon|findstr "8888" 是否占用
(3)谷歌浏览器设置代理打开你的手机代理设置填写代理服务器(127.0.0.1 或ip地址 或locahost),端口8888保存
(4)jmeter中启动代理服务器
(5)在到浏览器中输入录制的网站
(6)查看录制接口的或存放点是否有接口,有接口说明录制成功(但是接口中的其他接口资源太多)
优化:
HTTP代理服务器rquests filtering排除模式:
(..(js|css|PNG|jpg|ico|png|gif|scan|php|html).

二、性能实战
1、单接口性能测试(登录)压力测试 同一个用户压测1000
(1)填写登录接口,用户名admin,账目:12345678
(2)线程数中修改:虚拟用户数,时间
如“1000” ,15
线程页面详解:
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
Ramp-Up Period(in seconds)准备时长:
设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要50秒钟启动500个线程,也就是每秒钟启动10个线程。
循环次数:每个线程发送请求的次数。如果线程数为500,循环次数为2,那么每个线程发送2次请求。总请求数为500*2=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
Delay Thread creation until needed:直到需要时延迟线程的创建。
调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
持续时间(秒):测试持续时间,会覆盖结束时间
启动延迟(秒):测试延迟启动时间,会覆盖启动时间
启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
结束时间:测试结束时间,持续时间会覆盖它。
(3)监听器中添加:查看结果树、聚合报告
(4)保存接口,运行,查看结果
(5)聚合报告中就有数据

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

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

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% 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、单接口性能测试(登录)压力测试 同一个用户压测10
(1)填写登录接口,用户名${u},账目:${p}12345678
(2)线程数中修改:虚拟用户数10,时间
如“10” ,1
(3)新建10个不同用户,
(4)右键添加前置处理器用户参数添加变量==用户名10个
(3)监听器中添加:查看结果树、聚合报告
(4)保存接口,运行,查看结果
(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毫秒)

TPS: (每秒事务数) 在每秒时间内系统可处理完毕的事务数。TPS很大程度体现系统性能能力。

TPS(Transaction Per Second)是指单位时间(每秒)系统处理的事务量。事务可以是用户自定义的一系列操作或者动作的集合,比如“用户注册“事务是点击注册按钮,填写用户注册信息,点击提交按钮,以及加载注册成功页面的动作集合。

请求+传输+返回

6、性能指标
(1)软件指标:
响应时间、错误率、吞吐量、并发数(最佳并发,最大并发)、中位数、95%用户响应时间,90%用户响应时间,98%用户响应时间
tps、qps、hps、成功率、吞吐率,注册用户数、在线用户数、点击率、pv(浏览量)、uv(访问量)等
(2)硬件指标:
cpu、内存、磁盘、网络i/o,硬盘,
性能指标参考讲解:https://www.cnblogs.com/xiaolehong/p/16790205.html

7、性能插件
(1)将性能插件导入存放:
路径如下:E:\dcs\two\jmeter\apache-jmeter-3.3\lib\ext
两个插件(
JMeterPlugins-Extras.jar
JMeterPlugins-Standardjar

(2)点击启动
ServerAgentijar
startAgent.bat 点击启动,启动一次就可以,关闭
(3)重新打开jmeter
(4)右键监听器查看插件,并改成中文
详解:
@gc - Active Threads Over Timeip 活动线程时间
@gc - AutoStop Listener 自动停止侦听器
@gc - Bytes Throughput Over Timejp 字节吞吐量随时间变化
@gc -Composite Graph 综合图 (重点)
@gc - Connect Times Over Timejp 连接时间
@gc -Console Status Loggerjp 控制台状态记录器
@gc - DbMon Samples Collectorjp (DbMon Collectorjp样品收集器
@gc -Flexible File Writer 监听器之灵活的文件写入
@gc - Graphs Generatorjip 图形发生器
@gc - Hits per Second 每秒点击次数 (重点)
@gc -JMXMon Samples Collectorjp (JMXMon样品收集器
@gc - Page Data Extractor 页面数据提取器
@gc - PerfMon Metrics Collectorjip 性能指标收集器(不能加,加了会报错)
@gc - Response Codes per Secondjip 每秒响应数
@gc - Response Latencies Over Timejip 随时间间隔变化的响应延迟
@gc - Response Times Distributionjip 响应时间分布图
@gc - Response Times Over Timeip 随时间变化的响应时间
@gc - Response Times Percentilesjip 响应时间百分位数
@gc - Response Times vs Threadsjp 响应时间vs线程
@gc - Synthesis Report (filtered) 综合报告(过滤)
@gc - Transaction Throughput vs Threadsjip 整个线程的事务
@gc - Transactions per Second 每秒事务数 (重点)
(5)运用性能场景,查看插件收集的信息
写一个性能场景,添加插件,收集监控信息

nmon基本介绍,

nmon是帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。

分析工具

分析 AIX 和 Linux 性能的免费工具, 这个高效的工具可以工作于任何屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其CPU使用率将低于百分之一。 使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。然而,您可以很容易地将这个时间间隔更改为更长或更短的时间段。如果您拉伸窗口,并在X Windows、VNC、PuTTY 或类似的窗口中显示这些数据,nmon 工具可以同时输出大量的信息。 nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。

性能介绍 nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,

其中包括:

CPU 使用率

内存使用情况

内核统计信息和运行队列信息

磁盘 I/O 速度、传输和读/写比率 文件系统中的可用空间

磁盘适配器

网络 I/O 速度、

传输和读/写比率 页面空间和页面速度

CPU 和 AIX 规范

消耗资源最多的进程

IBM HTTP Web 缓存

用户自定义的磁盘组

计算机详细信息和资源

异步 I/O,仅适用于 AIX

工作负载管理器 (WLM),仅适用于 AIX

IBM TotalStorage® Enterprise Storage Server® (ESS) 磁盘,

仅适用于 AIX

网络文件系统 (NFS)

动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower

nmon的使用

Nmon 操作

Nmon 启动后可以显示 Linux 系统 CPU、内存、进程信息,包括了 CPU 的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的 CPU 消耗等详细指标。该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗 CPU 利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据均是实时刷新,一目了然。

q : 停止并退出 Nmon
h : 查看帮助
c : 查看 CPU 统计数据
m : 查看内存统计数据
d : 查看硬盘统计数据
k : 查看内核统计数据
n : 查看网络统计数据
N : 查看 NFS 统计数据
j : 查看文件系统统计数据
t : 查看高耗进程
V : 查看虚拟内存统计数据
v : 详细模式

采集数据  #./nmon -s10 -c60 -f -m /home/

-s10 每 10 秒采集一次数据

-c60 采集 60 次,即为采集十分钟的数据

-f 生成的数据文件名中包含文件创建的时间

-m 生成的数据文件的存放目录

这样就会生成一个 nmon 文件,并每十秒更新一次,直到十分钟后

posted @ 2025-10-28 18:41  Shidy  阅读(6)  评论(0)    收藏  举报