jmeter压力测试怎么测

2024-05-12

1. jmeter压力测试怎么测

jmeter压力测试方法:

品牌型号:华硕UX30K723A
系统版本:win7
软件版本:apache jmeter v3.1官方版
1、打开JMeter,更改语言为中文,官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文,如下图所示:

2、创建线程组。在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】,如下图所示:

3、设置线程数和循环次数。我这里设置线程数为500,循环一次,如下图所示:

4、配置元件。在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】,如下图所示:

5、配置我们需要进行测试的程序协议、地址和端口,如下图所示:

6、构造HTTP请求。在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json,如下图所示:

7、添加HTTP请求头,在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP信息头管理器】。因为我要传输的数据为json,所以设置一个 Content-Type:application/json,如下图所示:

8、添加断言。在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息,如下图所示:

9、添加察看结果树,在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。直接添加,然后点击运行按钮就可以看到结果了,如下图所示:

10、添加Summary Report。在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。直接添加,然后点击运行按钮就可以看到结果了,如下图所示:

11、执行测试计划,执行测试计划不能用GUI,需要用命令行来执行,如下图所示:
我这里执行的命令为:
jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport
说明:
testplan/RedisLock.jmx 为测试计划文件路径testplan/result/result.txt 为测试结果文件路径testplan/webreport 为web报告保存路径。

12、Web报告,如下图所示:

jmeter压力测试怎么测

2. 压测工具JMeter的使用

 性能压测工具,在我们项目开发过程中肯定免不了要经常使用,来检测我们完成的接口或者整体服务的抗压水平。Apache提供了个 ab 命令,可以进行压测功能,只不过功能相对简单,有时候很难满足我们的测试需求。
   所以,这里介绍下Apache的另一款压测工具 JMeter,它是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方 面做的比较成熟,因此,常被用做接口功能测试和性能测试。
                                           本次压测模拟的流程是:请求先访问登录接口,成功后通过返回信息拿到用户ID,再将用户ID作为参数访问商品下单的接口。压力测试规则是每秒1000的并发请求,执行1次,也就是执行1s。
    PS:下方涉及到的三个变量 NAME、PASSWORD、USER_ID 它们是需要用 {} 来包裹的,我下边写错了,写成了 () 包裹的了。哈哈,我实在是懒得挨个截图改了,在这里说明下,明白原理就好 

3. jmeter 压力测试各种值的意思

我来给你解释解释:
样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。

关于你说的测试值范围,可根据你的不同测试目的进行设置。简单来讲,线程数代表有多少个线程,也就是代表多少个用户;Ramp-Up Period(in-seconds)代表隔多长时间执行,0代表同时并发;循环次数就是代表执行几次。

试试看吧~有问题再问我,最佳答案一定要给我啊:)

jmeter 压力测试各种值的意思

4. jmeter压力测试线程问题

按照你上面的设置,20秒之内总共要开启100个线程,每秒开启5个线程,不管之前开启的线程有没有运行完,每隔1秒就再开启5个线程,直到00个线程都开启完;循环次数设置1,即每个线程只运行一次结束。

集合报告中的samples=线程数*循环次数
如果并发,可把ramp-up period设置为1

5. 如何利用Jmeter做分布式压力测试

-1-  为啥要使用分布式?
在使用Jmeter进行性能测试时,如果并发数比较大(比如项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能 
-2-  分布式执行原理
1)Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2)执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行。
3)执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
-3-  分布式部署步骤
1)把所有都在一个局域网的几台计算机都安装好Jmeter并配置好环境变量,这里需要注意的是:所有的计算机上的Jmeter版本必须一致,不然后期进行压力测试会有问题。
2)获取到所有计算机的ip地址,选择其中一台作为调度机Master,其余的作为执行机(Slave)。
3)打开Master主机上的Jmeter安装路径下面的bin文件夹,找到这个文件:jmeter.properties,打开定位到remote_hosts,然后把remote_hosts=127.0.0.1 改成 remote_hosts=slave1的IP地址:1099,slave2的ip地址:1099。比如说华华有一台执行机,ip地址是:192.168.2.112,那么我的就改成:remote_hosts=192.168.2.112:1099。如果你有多台,你只需要分别用逗号隔开即可,但是保证我们的端口号都是1099,如下图所示:
4)设置1099为master与slave之间的通讯端口,不然我们上面设置的remote_hosts就会不起作用哦!打开cmd命令行界面,输入:
SET SERVER_PORT=1099  Jmeter-SERVER
5)关闭Master与slave主机上的防火墙,一切准备就绪,接下来就是如何使用啦!
-4- 开始使用
1)打开所有Slave主机上Jmeter安装路径下bin文件夹,找到Jmeter-server.bat,双击运行。
2)打开Master主机上Jmeter安装路径下bin文件夹,找到Jmeter.bat,双击运行
3)在Master主机打开的jmeter界面,点击:运行--远程启动,你就会看到你的所有slave主机IP地址都会显示在这个远程启的列表里面,选择你要启动的slave机器并点击,之后会提示你启动成功。看看我的远程启动列表:
4)开始运行脚本。
5)最后做好结果收集,完成分布式压力测试,就差你的压力测试报告啦

如何利用Jmeter做分布式压力测试

6. 使用jmeter进行压力测试及如何添加负载机

1、首先在测试计划里面添加一个线程组,然后再其下面添加一个“HTTP请求”,来存放我们要测试的web信息。
a、web的IP地址
b、请求方式:这里用的是get
c、路径
d、发送请求时的入参
参考图片如下:

2、因为我们要做压力测试,所以在线程组页面也要进行一些设置
a、线程数==20     这里的线程数也就是我们所说的用户并发数,有20个用户来进行压力测试。
b、循环次数 勾选永远,因为是压力测试,要一直循环下去。
c、持续时间 ==600秒  一般请求下是10-15分钟
参考下图:


3、为了测试结果,我们添加了一个查看结果树和一个聚合报告
在聚合报告中会详细记录这次压力测试的一个结果信息。
这里有一些概念:
Samples:表示你这次测试中一共发出了多少个请求
TPS :服务端每秒钟处理的请求数 ,在实际当中TPS越大该性能越好。响应时间 :单个 Request 的平均响应时间,越短越好。
结果请参考下图

4、最后给大家介绍一下如何添加负载机,由于在现实的环境中,我们自己的电脑配置是有限的,需要拿其他的电脑来一起进行压力测试,所以出现了负载机的概念。
其实添加负载机是很简单的,
1、在负载机的电脑上面,只需要启动jmeter-server.bat的文件就可以了(需要配置jdk及jmeter的环境变量)
2、第二步,需要在主控机上面配置负载机的ip地址,配置方法是:在该路径下E:\apache-jmeter-3.0\bin(jmeter本地的解压路径),修改jmeter.properties文件中的remote_hosts信息,
把负载机的ip加入到里面remot_hosts=127.0.0.1,192.168.1.2:1099,192.168.1.3:1099
如图:

最后执行远程全部启动,多台电脑一起来进行压力测试--成功running起。

7. jemeter做压力测试需要哪些前提条件

多用户同时登陆web应用程序,并进行操作,查看在多用户操作下,程序的performence。恰好,jemter下有个CSV Data Set Config,它用来设定一组参数,以便在向程序发出请求时,传入参数。
在进行压力测试以前,应先将操作过程记录下来。jmeter有个http prox serve,用它可以进行记录。

jemeter做压力测试需要哪些前提条件

8. Jmeter 压力测试并输出HTML报告

 在进行性能测试执行之前,需要进行场景的设计:   以什么方式启动,如何持续进行,直至测试结束
    三部曲:启动---持续进行---结束 
   PS:一般情况下,建议限制Jmeter的的线程数在300及以内,这样能更好的发挥出jmeter的性能
    测试步骤:    测试计划---线程组--HTTP请求---监听器---运行脚本---查看报告
   PS:默认情况下,JMeter运行需要占用1 GB的内存,这可能还不够,取决于你的测试计划和需要运行的线程数
   一个测试计划描述了一系列Jmeter运行时需要执行的步骤,可以包含一个或者多个线程组,逻辑控制器,取样发生控制,监听器,定时器,断言和配置元件。
    启动JMeter,会出现一个空的测试计划,此次练习通过手写脚本来实现    (不熟悉操作的,也可以通过模板的形式创建,在菜单栏文件--Templates,下拉列表中选择Recording,点击Create,一个完整的Test Plan就生成了,当然我们可以删除不需要的内容)
                                           作用:模拟用户个数、发送请求的频率及次数   PS:设置合理的线程数对能否达到测试目标有着决定性的影响,另外,设置合理的循环次数也很重要
                                           此处添加3个HTTP请求
                                            1、添加响应断言 :设置响应码为200
                                            2、查看结果树,验证请求    调试时线程数和循环次数设为1就可以了,记得调试好之后再改回去
                                            3、禁用查看结果树,命令行执行脚本    我们在启动Jmeter时就会看到命令行的提示信息,进行负载测试时请不要使用GUI模式,也就是用命令行模式运行 JMeter 测试脚本,这样可以大大缩减所需要的系统资源
    备注:GUI 即图形用户界面模式,只应用于创建测试脚本、调试脚本 
                                           图中也给出了命令格式: jmeter -n -t [jmx file] -l [result file] -e -o [Path to output folder] ,JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录,当然也可以使用绝对路径来执行
   参数说明:
    (1)直接生成HTML报告     PS:输出文件(-l后的文件)必须是不存在的,report文件夹为空文件夹或者不存在(-o后面的),不然无法生存报告    启动CMD窗口,输入以下命令:   jmeter -n -t C:\Users\zhangXXX\Desktop\baidu.jmx -l C:\Users\zhangXXX\Desktop\html.csv -e -o C:\Users\zhangXXX\Desktop\baidu-reports
                                            (2)使用之前的测试结果,生成测试报告    启动CMD窗口,先生成测试结果,再生成报告,输入以下命令:
                                                                                                                             PS:-g  指定已存在的测试结果文件  
   以上两种方法,其实最终都依赖生成的测试报告。双击报告文件夹中的index.html就可以查看报告
    Dashboard:    Test and Report informations:指的是测试和报告信息
   APDEX(Application Performance Index):应用程序性能满意度的标准,范围在0-1之间,1表示达到所有用户均满意,越接近1满意度越高
   Requests Summary:请求的通过率(OK)与失败率(KO),百分比显示
   Statistics:数据分析,基本将Summary Report和Aggrerate Report的结果合并
   Errors:错误情况,依据不同的错误类型,将所有错误结果展示
                                            Charts: 用图表的形式展示测试数据,让测试报告更加直观**   主要有如下特点:   (1)将测试过程中经常使用的数据,用图表的形式展示,让测试结果更加直观   (2)每个图表数据,有两种展示形式   (3)支持请求样例过滤显示   (4)支持导出PNG图片格式
   Over Time Charts:
                                           Throughput Charts:
                                           Response Times Charts:
                                            4、添加所需监听器,导入日志文件即可查看    在性能测试过程中,我们往往需要将测试结果保存在一个文件当中,也可以为日后的性能测试报告提供更多的素材
   在Jmeter中,结果都存放在  .jtl  文件中,格式有很多种,可以根据需要进行更爱,选择某个监听器,在 configure页面 进行相应配置,让我们来查看下保存后的文件有哪些内容:
                                           接下来添加一个聚合报告,然后导入日志文件,查看结果,还可以添加其他的监听器,操作方法一样
                                           PS:如果测试计划中增加了监听器(生成概要结果),在执行命令时就可以看到每个线程的执行情况
                                            PS:设置好线程数、循环次数、集合点、事务、断言、关联等等后即可执行压力测试 
   原理和LR的agent差不多,因为jmeter由Java开发,耗内存、cpu,所以需要采用分布式
   步骤:   1、关闭防火墙   2、在所要运行jmeter并作为负载生成器的机器上安装jmeter(确保在所有系统中使用了相同版本号的Jmeter和jdk)    PS:目标服务器需要在相同网段,确保Jmeter可以访问目标服务器    3、确定其中一台机器作为主controller,其他的机器作为agent,然后运行所有agent机器上的jmeter-server文件   4、在controller机器的jmeter中bin目录下,找到jmeter.properties文件,添加节点IP,修改localhost为压力机IP
                                           5、启动conttoller机子上的jmeter应用,选择菜单【运行】---远程启动来分别启动agent,也可以直接选择【远程全部启动】来将所有个agent启动
    在性能测试过程中,我们通常需要将测试结果保存在一个文件当中,既可以保存测试结果,也可以为日后的性能测试报告提供更多的素材 
    Jmeter中,结果都存放在.jtl文件,一般以csv文件格式记录,只需要选择某个监听器,点击页面的configure按钮,建议勾选如下项:Save Field Name,Save Assertion Failure Message 
   技术点:HTTP相关设置+参数化+断言+关联+简单控制器+查看结果树   关联:通过Json控件或正则表达式获取   (1)线程组建议替换为jp@gc - Stepping Thread Group,功能比线程组多很多
                                           (2)可以加事务控制器   (3)查看结果树替换为聚合报告或类似的报告,如果还是想看查看结果树记得勾选仅日志错误(查看结果树打印的日志比较多,会影响性能)   (4)造数据
   总结:   一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。   比较独立的接口,可以统一放在一个线程组内,顺序完成测试。
   流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性