jmeter 为性能测试供应了一下特色:
jmeter 可以对测试静态资源(例如 js、html 等)以及动态资源(例如 php、jsp、ajax 等等)进行性能测试
jmeter 可以挖掘出系统最大能处理的并发用户数
jmeter 供应了一系列各种形式的性能剖析报告
利用 jmeter 一样平常用于以下两种类型的性能测试
负载测试:通过测试系统在资源超负荷情形下的表现,以创造设计上的缺点或验证系统的负载能力。
压力测试:测试系统能承受的最大负载能力。目的在于发挖掘出目标做事系统可以处理的最大负载
利用 jmeter 进行性能测试的基本过程
对上图进行简要的解释
新增线程组
创建测试线程组,并设置线程数量及线程初始化启动办法。
新增 JMeter 元组
创建各种默认元组及测试元组,填入目标测试静态资源要乞降动态资源要求参数及数据。
新增监听器
创建各种形式的结果搜集元组,以便在运行过程及运行结束后搜集监控指标数据。
运行&查当作果
调试运行,剖析指标数据,挖掘性能瓶颈、评估系统性能状态。
1、jmeter 并发测试1)添加线程组,初始化线程组
假设:
Ramp-Up Period:T (有人称之为启动韶光,有人说是准备时长,看个人喜好)
线程数:n
循环次数:a
若每个循环运行韶光是 t
当时间到 S = (T- T/n)时,末了一个线程启动,若要使所有线程同时运作,则须要在末了一个线程启动的时候第一个线程仍未关闭,为达到这个哀求,需知足 a·t > S及a > S/t
每一个线程运行韶光既是R = a·t(此处的a是大于S/t的某一值),则第一个线程在韶光点为R 的时候停滞,全体测试理论运行韶光则是 :S + R = (1-1/n)·T + a·t
总结:
测试中变量是 线程数 n ,每个循环韶光 t 是个实践值,循环次数 a 只是为了延长单个线程的运行韶光,从而担保当末了一个线程启动时,所有线程都在运行中,达到压测效果。
例如:如何利用jmeter进行并发登录测试
第一种方案直接从数据库中获取账号和密码
1、设置线程数为20 ,我们的并发用户量便是20个用户同时登录
2、添加定时器(同步定时器(Synchronizing Timer)-->用来设置凑集点,其浸染是:壅塞线程,直到指定的线程数量到达后,再一起开释,可以瞬间产生很大的压力
3、设置凑集点,当用户数量达到20个的时候再同时要求进行登录操作
(1)Number of Simulated Users to Group by:仿照用户的数量,即指定同时开释的线程数数量,若设置为0,即是设置为线程组中的线程数量;
(2)Timeout in milliseconds:超时时间,即超时多少毫秒后同时开释指定的线程数;如果设置为0,该定时器将会等待线程数达到了设置的线程数才开释,若没有达到设置的线程数会一贯去世等。如果大于0,那么如果超过Timeout inmilliseconds中设置的最大等待韶光后还没达到设置的线程数,Timer将不再等待,开释已到达的线程。默认为0同步定时器(Synchronizing Timer)的超时时间设置哀求:超时时间 > 要求凑集数量 1000 / (线程数 / 线程加载韶光)
第二种方案对登录账号和密码进行参数化
1、添加设置线程数
2、添加定时器,设置凑集点
3、添加CSV Data Set Config进行参数化配置
2、性能插件下载安装及利用
下载地址:jmeter-plugins.org
安装:下载后文件为plugins-manager.jar格式,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。
启动jemter,点击选项,最下面的一栏,如下图所示:
Installed Plugins(已安装的插件):即插件jar包中已经包含的插件,可以通过选中勾选框,来利用这些插件;
Available Plugins(可下载的插件):即该插件扩展的一些插件,可以通过选中勾选框,来下载你所须要的插件;
Upgrades(可更新的插件):即可以更新到最新版本的一些插件,一样平常显示为加粗斜体,可以通过点击截图右下角的Apply Changes and Restart Jmeter按钮来下载更新;
PS:一样平常不建议进行更新操作,由于最新的插件都有一些兼容问题,而且很可能导致jmeter无法利用
1)阶梯压测--Concurrency Thread Group在plugins插件组中,有一个的插件,叫做:Concurrency Thread Group
干系先容以及下载地址如下:Documentation :: JMeter-Plugins.org
实在最好的办法,是直接下载jmeter的第三方插件Plugin Manager(个中包含了很多扩展支持插件),解压后将其放入jmeter安装目录的jmeter-3.0\lib\ext路径下,然后重启即可。
下载地址:Documentation :: JMeter-Plugins.org
安装完成后,我们开始创建测试操持,并选择Concurrency Thread Group:
Concurrency Thread Group:
下部分,是该压测的并发数据输入框。来看下各个参数的含义:
Target Concurrency:目标并发数
Ramp Up Time:加速韶光
Ramp-Up Steps Count:加速次数
Hold Target Rate Time:保持目标速率韶光
Time Unit:韶光单位
Thread Iterations Limit:线程迭代次数限定,即循环次数(空,即为一次)
Log Threads Status into File:将线程状态记录到文件中(保存日志文件);
以上图中所示为例,首先Time Unit选择的是min(分),输入的数据为:
Target Concurrency: 50
Ramp up Time(min): 1
Ramp-up Steps Count: 5
Hold Target Rate Time(min): 1
Thread Iterations Limit: (空)
此用例场景为 ,在“Ramp up Time(min): ”1分钟的韶光内,一共产生目标线程“Target Concurrency: ”50个;并且,分成“Ramp-up Steps Count: ”5个阶段来完成;在目标线程产生结束后,坚持该线程生产速率“Hold Target Rate Time(min): ”1分钟;并且循环实行“Thread Iterations Limit: ”1次。over。
图中赤色线条显示了单个循环内线程的产生概况,X轴为韶光,共2min;Y轴为线程数,最高50条。5个阶梯显示出了线程的阶梯状分布。
2)Jmeter — jp@gc - Ultimate Thread Group一、安装插件
首先,须要安装jp@gc - Ultimate Thread Group插件,这个不再详述
二、添加线程
步骤:右键测试操持->添加->Threads(Users)->jp@gc - Ultimate Thread Group
Start Threads Count:当前行启动的线程总数。线程将一个接一个地开始,直到达到定义的线程数为止。
Initial Delay/sec:延时启动当前行的线程,单位:秒 S
tartup Time/sec:启动当前行所有线程达峰值所需韶光,单位:秒
Hold Load For/sec:当前行线程达到峰值后的稳定加载韶光,单位:秒
Shutdown Time:停滞当前行所有线程所需韶光,单位:秒
举例解释:
配置解释:
第一个阶段,花30s的韶光,启动20个线程,持续运行60s,用10s的韶光停滞掉
第二个阶段,第一阶段的线程都停滞后,再开始启动第二个阶段的线程,花30s的韶光再启动20个线程,再持续60s,用10s停掉
这样像波浪一样拍打做事器,不雅观察做事器的性能,看系统是否能平稳运行。
3、查当作果及监控做事器资源监听器
右键测试操持->添加->监听器->添加以下三个监听器--->完全添加HTTP Request后,点击运行测试,查看各监控器中的运行结果。
jp@gc - Actiive Threads Over Time
不同韶光活动用户数量展示
展示阶梯加压测试的图标
Active Threads Over Time如:这个图里可以清楚看到,并发线程数量呈现出明显的阶梯形状。在不同的韶光段内,做事器处在不同的压力级别当中。
Active Threads Over Time如:这个图里可以清楚看到,并发线程数量呈现出明显的阶梯形状。在不同的韶光段内,做事器处在不同的压力级别当中。
TPS变革展示图:
Response Times Over Time
PerfMon Metrics Collector:
做事器性能监控数据采集器。在性能测试过程中,除了监控TPS和TRT,还须要监控做事器的资源利用情形,比如CPU、memory、I/O等。
该插件可以在性能测试中实时监控做事器的各项资源利用。
下载地址:Install :: JMeter-Plugins.org
个中JMeterPlugins-Standard和JMeterPlugins-Extras是客户真个插件,ServerAgent是做事真个插件。
下载成功后,复制JmeterPlugins-Extras.jar和JmeterPlugins-Standard.jar两个文件,放到jmeter安装文件中的lib/ext中,重启jmeter,即可在监听器看到该监视器插件。
将ServerAgent-2.2.1.jar上传到被测做事器,解压,进入目录,Windows环境,双击ServerAgent.bat启动;linux环境执ServerAgent.sh启动,默认利用4444端口。
如涌现如下图所示情形,即表明做事端配置成功:
1、做事端启动校验
CMD进入命令框,不雅观察是否有吸收到,如果有,即表明ServerAgent成功启动。
2、客户端监听测试
给测试脚本中添加jp@gc - Perfmon Metrics Collector监听器,然后添加须要监控的做事器资源选项,启动脚本,即可在该监听器界面看到资源利用的曲线变革。如下图所示:
其他监听器
在这里我们添加如下监听器,如图所示
运行&查当作果
如果启动运行 jmeter,可以单击添加的监听器查看运行过程中的监控指标数据,也可以等运行结束后,再查看。
结果解释
下面我们就监听器所采集的结果图进行简要的解释:
图形结果
察看结果树
用表格查当作果
查看聚合报告
1、Lable:Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的便是 Name 属性的值;
2、#Samples:表示这次测试中一共发出了多少个要求,如果仿照10个用户,每个用户迭代10次,那么这里显示100;【我的是用户有100,只迭代一次,因此也是100】
3、Average:均匀相应韶光——默认情形下是单个 Request 的均匀相应韶光,当利用了 Transaction Controller 时,也可以以Transaction 为单位显示均匀相应韶光;
4、Median:中位数,也便是 50% 用户的相应韶光;
5、90% Line ~ 99% Line:90% ~99%用户的相应韶光;
6、Min:最小相应韶光;
7、Maximum:最大相应韶光;
8、Error%:本次测试中涌现的缺点率,即 缺点的要求的数量/要求的总数;
9、Throughput:吞吐量——默认情形下表示每秒完成的要求数(Request per Second),当利用了 Transaction ;
10、Received KB/src:每秒从做事器端吸收到的数据量;
11、Sent KB/src:每秒从客户端发送的要求的数量。、
原文链接:https://blog.csdn.net/Nkx_kaixin/article/details/123546766