zoukankan      html  css  js  c++  java
  • jmeter压力测试

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

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

    需求确认

    在压测前,要确认压测的功能和指标,一般需要确认下面几个问题:

    1、并发数是多少?

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

    3、接口参数固定还是随机化?

    压力测试的设置

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

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

     

    图1

    压测结果查看

    一般在线程组上添加聚合报告来查看和分析压测结果:

     

    图2

    聚合报告内容如下:

    图3

    压测结果分析

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

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

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

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

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

    6、影响性能的考虑点包括:数据库、应用程序、中间件(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添加负载机

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

    1、添加负载机的步骤

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

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

    图4

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

    4、启动时候选择远程全部运行即可

    2、负载运行结果说明

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

     

    图5

     

    图6

     

    图7

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

    当请求本身是正确的,故意将断言的响应数据写错的话,就可以看到请求的响应数据啦,如图8

     

    图8

    3、注意事项

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

     

    图9

     

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

    图10

  • 相关阅读:
    Windows Server 2012配置开机启动项
    Windows Server 2019 SSH Server
    NOIP2017 senior A 模拟赛 7.7 T1 棋盘
    Noip 2015 senior 复赛 Day2 子串
    Noip 2015 senior复赛 题解
    Noip 2014 senior Day2 解方程(equation)
    Noip 2014 senior Day2 寻找道路(road)
    Noip 2014 senior Day2 无线网络发射器选址(wireless)
    Noip2014senior复赛 飞扬的小鸟
    Noip 2014 senior 复赛 联合权值(link)
  • 原文地址:https://www.cnblogs.com/ruijie/p/8615215.html
Copyright © 2011-2022 走看看