jmeter压力测试

Jmeter既能够接口测试也能够作性能测试,下面讲一下使用jmeter作压力测试,压力测试就是多个用户同时操做系统,即设置并发,并发运行时间。linux

压力测试通常分单场景和多场景,单场景就是压测单个接口,多场景就是同时压测多个有数据关联的接口。nginx

 

需求确认

在压测前,要确认压测的功能和指标,通常须要确认下面几个问题:web

一、并发数是多少?数据库

二、TPS(服务器每秒钟处理的请求数)目标是多少?响应时间有什么要求?windows

三、接口参数固定仍是随机化?tomcat

 

压力测试的设置

压力测试的步骤与接口测试相同:1)添加线程组 2)添加http请求 3)在http请求中写入url、路径、请求方式、参数等,进行一系列的请求设置(参数化、关联等) 4)添加监听器  5)运行脚本,查看结果服务器

压测主要设置的就是步骤1)线程组有关的内容,其中循环次数并不会改变并发数,只是延长了并发时间。总请求数=线程数*循环次数网络

 

图1并发

压测结果查看

通常在线程组上添加聚合报告来查看和分析压测结果:高并发

 

图2

聚合报告内容以下:

图3

 

压测结果分析

一、有错误发生,须要与开发确认,是否容许错误的发生或者错误率容许在多大范围内

二、压测结束,登陆响应的web服务器查看CPU等性能指标,进行数据分析

三、最大的tps:不断增长并发数,加到tps达到必定值开始出现降低时,那么这个值就是最大的tps

四、最大并发数:通常不断增大请求,直到响应请求超时时,可认为该值为最大并发数

五、压测过程出现性能瓶颈,若压力机管理器查看到cpu、网络和内存等都正常,未达到90%以上,则能够说明服务器有问题,压力机没有问题

六、影响性能的考虑点包括:数据库、应用程序、中间件(tomcat、nginx)、网络、操做系统等方面

 

Linux下运行jmeter压力测试

用windows平台测试时,会受到网络条件的影响,致使测试结果不够准确,尤为在高并发状况下,须要可以精准的测试请求的响应时长,对于网络的要求更加苛刻,此时,能够考虑在linux服务器端安装jmeter进行测试。

在linux下安装jmeter,推荐播客:http://blog.csdn.net/zhemeteor/article/details/51315874

咱们能够如今windows上先把脚本作好,再到linux底下运行便可。

例如:jmeter -n -t test1.jmx -l logfile1.jtl

经常使用命令参数:

-n:非GUI模式下运行jmeter

-t:要运行的jmeter测试脚本文件,test1.jmx就是作好的jmeter脚本

-l:记录结果的文件,logfile1.jtl就是测试结果文件

-r:启动远程服务

-H:设置jmeter使用的代理主机

测试结果文件能够直接导入到查看结果树或者聚合报告下

 

 

Jmeter添加负载机

在压力测试过程当中,可能并发数过大,一个机子启动不了,可使用多个机子一块儿来并发。此时就须要添加负载机。

一、添加负载机的步骤

一、先在其余的负载机(另外的电脑)上启动jmeter-server。Windows机子做为压力机的话,运行jmeter-server.bat;linux、mac做为压力机的话,运行jmeter-server.sh

二、修改主控机jmeter的bin目录下的配置文件jmeter.properties,找到remot_hosts,而后把负载机的ip加入到里面就行了,别忘记写端口号

图4

 

默认jmeter-server的端口号是1099,若是说负载机上的端口号改了,那么你在这里也得改

四、启动时候选择远程所有运行便可

 

二、负载运行结果说明

使用远程负载进行压测,总请求数=线程数*循环次数*运行机个数。以下,线程组设置以下图5,负载机设置以下图6,有两个机器会运行脚本,每一个机器都运行2*2次,即总请求数为2*2*2,如图7

 

图5

 

图6

 

图7

使用远程负载运行的请求,查看结果树的响应数据是空的,如上图7。咱们能够经过在请求下添加断言,或者直接用聚合报告来查看请求是否正确。

当请求自己是正确的,故意将断言的响应数据写错的话,就能够看到请求的响应数据啦,如图8

 

图8

三、注意事项

一、            负载机和控制机的jmeter版本保持一致,不然有时会报以下错(固然不排除别的可能也会报以下错);有时是负载机不会运行脚本,也不报任何错。

 

图9

 

二、            须要控制机也运行脚本时,配置文件中remote_hosts的127.0.0.1的IP后面也要加上端口号“:1099”,而且在控制机运行jmeter-server.bat,不然会报如图10的错;不须要控制机运行脚本时,直接将remote_hosts的127.0.0.1删除,只留下负载机IP,这样就只有负载机在运行脚本。

图10

相关文章
相关标签/搜索