Jmeter场景设置与监听

news2024/10/2 16:24:00

Jmeter场景设置
场景的概念:
场景是用来尽量真实模拟用户操作的工作单元,场景设计源自于用户真实操作。

场景设计:
场景设计是根据收集分析用户的实际操作而定义的Jmeter脚本的执行策略。
性能测试中涉及的基本场景有两种,即单一业务场景和混合业务场景,这两种业务场景缺一不可, 缺少任何一种都不能准确评估系统性能,定位系统瓶颈。如果只做单-业务场景,得到的结果与实际生产环境差距较大,没有实际指导意义;如果只做混合业务场景,不能快速定位系统性能快速降低的原因,起不到定位瓶颈、系统调优的作用。只有两种场景互为补充,才可以获取最符合客户要求的测试结果。

在Jmeter场景主要通过线程组设置来完成。通过组合用户各种操作到场景中来,当然场景设计不仅仅是设置线程组,有些复杂场景还需要与逻辑控制器配合。Jmeter线程组实际上是建立一个线程池。

线程组界面如下:

线程组界面参数说明:
名称、注释与之前元件一样可以随意设置。

在取样器错误后要执行的动作:设置线程组中某一个请求出错后的异常处理方式。
继续:请求出错后继续运行。勾选此项后,有请求出错也继续运行。在大量用户并发情况下,服务器偶尔响应错误是正常现象,比如服务器由于性能问题不能正常响应或者响应不及时,此时我们把过程中错误记录下来,作为有性能问题的依据。

Start Next Thread Loop:遇到sampler执行出错时,直接进行下次循环,当前循环剩下的所有sampler不再执行。
停止线程:遇到sampler执行出错时,当前线程停止进行,其他线程继续。
停止测试:遇到sampler执行出错时,当前所有线程执行完当前循环停止进行。
stop Test now:遇到sampler执行出错时,当前所有线程立即停止

线程属性:
线程数:设置并发用户线程数量,即通常意义的并发用户数,一个线程对应一个模拟用户。

Ramp-Up Period (in seconds) :设置并发用户加载时间,即线程启动开始运行的时间间隔,单位是秒。假设并发用户数设置为50,此处设置为10,那么每秒就会启动50/10,5个线程;如果设置0,则开始就50个线程就立即启动。

循环次数:输入框与复选框只能选择一种, 不能同时被选择为场景循环方式;输入框输入数字则被认为是当前线程组所控制的脚本区域的执行次数; [永远] 复选框选后,输入框内的数字将失效,启动后脚本将一直执行下去。 输入框输入0表示执行0次无意义,所以不支持。

Delay Thread creation util needed:直到需要时延迟线程的创建,设置后,线程在Ramp-Up Period的间隔时间启动并运行。不设置,测试计划开始后启动所有线程
(NEW状态),但不立即运行Sampler,是按照Ramp-Up Period时间来运行的。
在实际性能测试过程中,设置或者不设置都影响不大。

调度器:选中之后可以配置启动时间,立即或者预定的时间。
启动时间:测试计划什么时候启动,启动延迟会覆盖它。当启动时间已过,手动运行脚本时当前时间也会覆盖它(但启动时间页面显示不会变)。
结束时间:测试计划什么时候结束,持续时间会覆盖它。
持续时间(秒) :测试计划持续多长时间,会覆盖结束时间。
启动延迟(秒) :测试计划延迟多长时间启动,会覆盖启动时间。

场景运行
Jmeter的场景运行方式分为两种,一种是GUI界面方式运行,一种是命令窗口(Windows的DOS命令窗口)运行。
Jmeter的场景运行架构分为两种,一种是本地运行,另一种是远程运行。不管是GUI还是命令方式都支持本地和远程运行。

GUI方式运行:
1、本地运行:本地运行即只运行本地一台]meter机器, 所有的请求通过该机器发
送。
2、本地运行点击绿色的运行按钮,如下左图所示

 

3、点击运行后,通过右上角可以查看线程信息,0代表没有线程异常,0/4中的前一个0代表当前运行活跃的进程数为0,后一一个4代表了总共运行了4个线程。灰色的圆框如果是绿色的代表运行正确。如果要停止测试,点击STOP按钮

2、远程运行:
远程运行是用-台Jmeter控制机控制远程的多台机器来产生负载。控制机与负载机之间通过RMI方式来完成通信。
操作步骤如下:
1、在负载机上部署Jmeter,确保Jmeter的bin目 录下存在ApacheJMeter.jar与jmeter-server.bat两个文件。
2、双击启动负载机的jmeter- server.bat程序。
3、在Jmeter控制机的bin目 录下找到jmeter.properties文件并修改"remote.hosts",
增加负载机IP,多个IP使用英文逗号隔开,修改后要重启Jmeter。如下图:
 

                                                               

4、进入Jmeter控制机的GUI图形界面,远程运行点击上图按钮即可。点击后,Jmeter控制机会自动探测,只要先启动远程负载机上的Agent,开始运行测试计划时就会自己连接负载机去完成。
5、如果要停止,点击上面右图的后面两个按钮即可。前者是执行完成当前迭代停止(比如脚本中有5个请求,在运行第2个的时候收到停止命令,那么将继续执行完5个请求然后再停止), 后者是立即终止。
备注:设置127.0.0.1, 需要控制机也启动jmeter-server.bat

命令窗口运行:
命令窗口运行没有Jmeter界面,通过DOS命令窗口运行场景。用纯命令方式运行Jmeter是因为]meter可视化界面及监听器动态展示结果都比较消耗负载机资源,在大并发情况下GUI方式往往会导致负载机资源紧张,会对性能结果产生影响。
这个影响不是指被测系统的性能受到影响,而是指负载机的性能受到影响,导致负载量上不去,比如命令模式100个线程可产生100TPS的负载,而GUI方式只产生80TPS的负载。所以推荐进行性能测试的时候,使用命令方式来运行测试计划。

Jmeter命令窗口方式运行场景的命令如下:
1、java -jar %JMETER_ HOME%\bin\ApacheJMeter.jar -n -t
%JMETER_ HOME%\script\script.jmx -r -l result.jtl
2、%JMETER_ HOME%\bin\jmeter -n -t %JMETER HOME%\script\script.jmx -r -l result,jtl
备注:
两条命令都可以运行测试计划,其中%JMETER_HOME%必须配置jmeter的环境变量,%JMETER_HOME%\script\scriptjmx为jmeter脚本存放路径。

jmeter命令行工具部分参数说明:
-n:非GUI方式运行
-t:指定运行的测试脚本地址与名称,可以是相对或绝对路径
-h:查看帮助
-v:查看版本
-p:指定读取Jmeter属性文件,比如jmeter.properties文件中设置的
-1:记录测试结果到文件,指定名称与路径,可以是相对或绝对路径
-s:以服务器方式运行(远程方式)
-r:开启远程负载机,远程负载机列表在jmeter.properties文件中指定
-R:开启远程负载机,可以指定负载机IP,会覆盖jmeter.properties中的设置
-L:定义Jmeter的日志级别,如DEBUG、INFO、ERROR等
-H:设置代理IP
-P:设置代理端口
-u:设置代理帐号
-a:设置代理帐号密码
-X:停止远程执行
-J:定义Jmeter属性, 等同于在jmeter.properties中设置
-G:定义Jmeter全局属性,等同于在Global.properties中设置,线程间可相互共享

Jmeter场景运行优化配置:
在性能测试场景运行时,使用GUI方式会占用资源,其实不管是GUI或者命名模式都会占用一定资源。因为Jmeter是纯Java开发,所以可以调整其性能参数,让其在Java虚拟机上运行起来更顺畅、效率更高。

配置如下:
打开Jmeter安装路径\bin\下的jmeter.bat文件,打开后,其中rem属于注释。
可以修改如下参数:
set HEAP:设置JVM堆大小,-Xms设置 初始堆大小,-Xmx设置最大堆大小
set NEW:设置年青代大小,-XX:NewSize设置年 青代初始内存大小,-
XX:MaxNewSize设置年青代最大内存大小,建议设为整个堆大小的1/3或者1/4,两
个值设为一样大。
set PERM: -XX:PermSize设置 持久代初始大小,-XX:MaxPermSize: 最大大小
set TENURING:年青代晋升年老代周期,默认是15
整个堆大小=年轻代大小+年老代大小+持久代大小,持久代-般固定大小为64m,所以增大年轻代后,将会减小年老代大小。

Jmeter测试监控
性能测试执行过程中,场景监控的主要任务是收集测试结果,测试结果有事务响应时间、吞吐量、TPS、 服务器硬件性能、JVM使用情况和数据库性能状态等。Jmeter中通过 监听器来完成测试结果收集工作。
Jmeter监听器元件比较多,- -般做性能测试用到比较多的监听器主要是Summary Report或者Aggregate Report(聚合报告)。
Summary Report以表格的形式显示取样器结果,如果不同取样器(不同请求)拥有相同的名字,那么在Summary Report中会统计到同一行,所以在给取样器取别名时最好不要为空,按业务功能来命名较好。
在执行性能测试之前,先通过右击线程组--添加--监听器- Summary Report,执行后生成的结果图如下:

 

Summary Report界面说明:
名称、注释与之前元件-样可以随意设置。
所有数据写入一个文件:保存测试结果到本地。
文件名:指定保存结果。
仅日志错误:仅保存日志中报错的部分。
Successes:保存日志中成功的部分。
Configure:设置结果属性,即保存哪些结果字段到文件。-般保存必要的字段
信息即可,保存的越多,对负载机的I0会产生影响。
Label:取样器名称(或者是事务名)。

Samples:取样器运行次数(提交了多少笔业务)。
Average:请求(事务)的平均响应时间,单位为毫秒。
Min:请求的最小响应时间,单位为毫秒。
Max:请求的最大响应时间,单位为毫秒。
Std.Dev:响应时间的标准方差。
Error%:事务错误率。
Throughput:吞吐率(TPS)。
KB/sec:每秒数据包流量,单位是KB。
Avg.Bytes:平均数据流量,单位是Byte。

Aggregate Report(聚合报告)与Summary Report-样,也是以表格显示取样器结果。在执行性能测试之前,先通过右击线程组-添加--监听器-聚合报告,执行后生成的结果图如下:

聚合报告中大部分字段与Summary Report-致,不再重复介绍,其它说明如下:
Median:响应时间中间值,指50%请求的响应时间。
90%Line: 90%请求的响应时间
95%Line: 95%请求的响应时间
99%Line: 99%请求的响应时间

标准方差的理解:
1.数据分布离平均值越近,标准方差越小;数据分布离平均值越远,标准
方差越大。
2.标准方差为0,意味着数列中每-个数都相等。
3.序列中每一个数都加上一个常数,标准方差保持不变的
所以,在查看测试报告时,标准方差越小,表示系统越趋于稳定。

90%Line的理解:
表示90%请求的响应时间,服务器的响应都维持在某个值附近。‘Average"值对于平均事务响应时间变动趋势很大的情况统计就不准确了,比如有三个时间: 1秒、5秒、12秒,则平均时间为6秒,
而另外一种情况:5秒、6秒、7秒,平均时间也为6秒,显然第二种比第一种要稳定多 了。所以,如果整体趋势比较稳定,取90%Line与Average区别不大。

Jmeter监控服务器资源:
商业性能测试工具如LR都提供了对被测服务器进行性能监控的功能,在使用Jmeter执行性能测试时,为了尽量减少负载机的资源消耗,一般不建议使用服务器资源监控的功能。而可以使用第三方工具去监控收集服务器资源。
但一些普通的场景(负 载小)还是可以利用]meter来进行服务器资源监控的。在Jmeter中通过第三方开源组件来完成此功能。

Jmeter监控服务器资源配置如下:
1、进入https:/ /jmeter-plugins.org/ downloads/all/下载jmeter-plugins-manager-0.11.jar,放置到jmeter安装 目录/lib/ext,然后重启jmeter
2、重启后从菜单-选项--Plugins Manager,进入插件管理界面,下 载PerfMon插件,重启Jmeter
3、进入https://jmeter-plugins.org/wiki/PerfMonAgent/ 下载ServerAgent-2.2.1.zip,把该压缩包在被测服务器上解压,解压后在dos命令窗口运行startAgent.sh命令,默认使用4444端口
4、在Jmeter工具端输入telnet服务器ip 4444然后输入test ,查看被测服务器是否有收到相应信息,收到表示连接正常,如果连接异常检查防火墙等原因。
5、在Jmeter控制机添加一个PerfMon Metrics Collector监听器, 点击运行即可获取。

命令窗口模式下性能测试结果收集:

聚合报告:在用命令模式执行时保存了后缀为,jtl格式的结果文件。打开JMeter
GUI界面->测试计划->添加线程组->添加聚合报告->点击"所有数据写入-个文
件"下的"浏览.."按钮找到你刚生成的jtl文件就可以对执行结果进行直观分析。

服务器资源:在GUI中为服务器性能监控监听器配置好要输出到的结果文件即可,
就像为其他监听器所配置的那样。压力脚本运行结束之后,就可以把保存的文件
拖到GUI并查看图形数据了。

总结:
感谢每一个认真阅读我文章的人!!!

 我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。
文档获取方式:点击右边链接领取:软件测试全套资料分享     

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio SDKGradleJDK等工具的正确使用

AS在安装使用过程中可能会占用C盘大量空间,对于C盘容量本来就小的人来说非常不友好,其实我们可以自定义安装路径 SDK默认安装位置 各种版本和NDK也会安装到这个路径 SDK版本选择性安装 通过选择图示的按钮,可以显示SDK的版本详情&#xff0…

标定板生成网址,可以直接打印,matlab标定工具箱

Camera Calibration Pattern Generator – calib.io matlab 打开标定的成像 cameraCalibrator 点击完成之后 命令行中输入 cameraParams.IntrinsicMatrix

Peppol 详解指南

什么是Peppol? Peppol 是 Pan-European Public Procurement On-Line 的缩写,是一种 EDI(电子数据交换)协议,旨在简化政府机构与供应商之间从采购到支付的流程。 依托于电子交换网络、业务互操作性规范(BI…

Discuz户外旅游|旅行游记模板/Discuz!旅行社、旅游行业门户网站模板

价值328的discuz户外旅游|旅行游记模板,本模板需要配套【仁天际-PC模板管理】插件使用。 模板说明 1、模板页面宽度1200px,简洁大气,较适合户外旅行、骑行、游记、摩旅、旅游、活动等类型的论坛、频道网站; 2、所优化的页面有&…

Python性能测试框架Locust实战教程!

01、认识Locust Locust是一个比较容易上手的分布式用户负载测试工具。它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust 在英文中是 蝗虫 的意思:作者的想法是在测试期间,放…

呼叫中心系统信息发送功能的应用

通常情况下功能比较齐全的呼叫中心系统都会有短信功能,那么短信功能在呼叫中心职场中有哪些应用呢? 呼叫中心系统中短信功能主要分为三部分:短信发送、待发送短信、短信发件箱,先来简单了解一下这三个功能在工作中如何使用。 短信…

【HCIE】13.VXLAN EVPN

数据中心一直使用VXLAN当做隧道协议,但是VXLAN没有自己的控制面协议,EVPN本来就可以传递MAC信息,IP信息,也可以传递VNI。就将EVPN做了改造(只把标签改了VNI)。 为什么二层一定需要一个控制面? …

关于网络协议的若干问题(四)

1、QUIC 是一个精巧的协议,它有哪些特性? 答:QUIC 还有其他特性,一个是快速建立连接。另一个是拥塞控制,QUIC 协议当前默认使用了 TCP 协议的 CUBIC(拥塞控制算法)。 CUBIC 进行了不同的设计&…

[清华大学]漏洞挖掘之状态敏感的模糊测试StateFuzz

Dr.赵博栋 Prof.张超 清华大学 网络研究院 INSC 本文主要介绍了通过State Fuzz对Linux驱动程序进行模糊测试,该Fuzz方法由赵博栋博士在InForSec会议上分享,并在USENIX Security上发布.StateFuzz :System Call-Based State-Aware Linux Driver Fuzzing.该…

国际通用的Bug管理工具推荐:多款工具助力项目开发与管理

国际通用的bug管理工具有:1、Zoho Projects;2、Tracup;3、Bugtags;4、QC(QualityCenter);5、Bugzilla;6、EasyBUG;7、Mantis;8、WebIssues。Zoho Projects拥有专业的缺陷管理模块&am…

Webmin(CVE-2019-15107)远程命令执行漏洞复现

漏洞编号 CVE-2019-15107 webmin介绍 什么是webmin Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作http://www.webmin.com/Webmin 是一个用 Perl 编写的基于浏览器的管理应用程序。是一个基于Web的界面…

项目管理必备工具推荐:提高效率、协作与跟踪的实用工具盘点

如果你是一个项目经理,你就会明白拥有合适的工具的重要性。如果没有正确的工具,将很难保持项目的组织和正常运行。幸运的是,有许多可用的项目管理工具可以帮助您提高项目的生产力和效率。这些工具旨在简化项目管理过程,使您更容易…

MySQL使用函数、存储过程实现:向数据表快速插入大量测试数据

实现数据表快速插入20W测试数据 实现过程创建表开启允许创建函数生成随机字符串生成随机整数生成随机地址创建存储过程调用存储过程查看插入数据 其他实用函数生成随机浮点数生成随机日期时间生成随机布尔值生成随机姓名生成随机手机号码生成随机邮箱地址生成随机IP地址生成随机…

【代码随想录】算法训练营 第二天 第一章 数组 Part 2

977. 有序数组的平方 题目 暴力解法 思路 原地更新所有数组元素为其平方数后&#xff0c;再使用sort函数排序&#xff0c;对vector使用sort函数时&#xff0c;两个参数分别是vector的起始元素和终止元素。 代码 class Solution { public:vector<int> sortedSquares(…

Linux shell编程学习笔记11:关系运算

Linux Shell 脚本编程和其他编程语言一样&#xff0c;支持算数、关系、布尔、字符串、文件测试等多种运算。前面几节我们研究了 Linux shell编程 中的 字符串运算 和 算术运算&#xff0c;今天我们来研究 Linux shell编程中的的关系运算。 一、关系运算符功能说明 运算符说明…

LeetCode34 在排序数组中寻找元素的第一个和最后一个位置

题目&#xff1a; 思路&#xff1a; https://blog.csdn.net/wangjiaqi333/article/details/124526112 直观的思路肯定是从前往后遍历一遍。用两个变量记录第一次和最后一次遇见target的下标&#xff0c;但这个方法的时间复杂度为O(n)&#xff0c;没有利用到数组升序排列的条件…

50 二叉树中的最大路径和

二叉树中的最大路径和 题解1 DFS 二叉树中的 路径被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次。该路径 至少包含一个节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二…

Spring中PointcutAdvisor和IntroductionAdvisor梳理

一、Advisor Advisor是SpringAOP的顶层抽象&#xff0c;用来管理Advice和Pointcut 1、Advice也叫增强器 Spring中有五种增强&#xff1a;BeforeAdvide&#xff08;前置增强&#xff09;、AfterAdvice&#xff08;后置增强&#xff09;、RoundAdvice&#xff08;环绕增强&#…

论文导读 | 7月8月上旬MSOM文章精选

编者按 淘宝店承诺的交货时间早些还是晚些更有利&#xff1f; 波动的市场环境下如何进行分布式储能的选址与运营&#xff1f; 企业存在服务竞争时如何对待“共享库存”这一模式&#xff1f; 网约车平台在线派单时能否综合权衡司机资质、等待时间、订单远近等多种因素&#xff1…

供应链 | 在线平台系列解读(三):B2C 平台市场中物流战略与平台渠道结构设计之间的相互作用

论文解读&#xff1a;张怡雯&#xff0c;温梓曦&#xff0c;肖善&#xff0c;杨子豪 The interplay between logistics strategy and platform’s channel structure design in B2C platform market 原文作者信息 H. Liu, T. Xu, S. Jing, Z. Liu, S. Wang (2023) The interpl…