【使用Jmeter做分布式压测】

下载安装

     Jmeter下载:

      下载地址(官网):https://jmeter.apache.org/download_jmeter.cgi

       下载地址(国内):http://archive.apache.org/dist/jmeter/binaries/   推荐

    Jdk 下载:

       下载地址(官网):https://www.oracle.com/java/technologies/javase-downloads.html 

       下载地址(国内):http://www.sousou88.com/spec/java_openjdk.html 

 

安装及环境配置

    Jdk环境配置:

        新建 “JAVA_HOME”变量,变量值:
        C:\Program Files (x86)\Java\jdk1.8.0_20; (JDK的安装路径)
       新建“CLASSPATH”变量,变量值:
       .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\bin;(注意最前面有一点)
       编辑“path”变量,变量值:%JAVA_HOME%\bin;

     Jmeter环境配置:

       新建 “JMETER_HOME”变量,变量值: D:\jmeter\apache-jmeter-3.3; (jmeter的安装路径)
       编辑“CLASSPATH”变量,变量值:

       %JMETER_HOME%\lib\ext \ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;

    测试环境变量:

       打开windows - cmd命令行窗口,输入java、javac、jmeter;有相应的提示,既是安装成功

      

 

Jmeter基本使用:

     一、启动:

            目录文件下双击打开 ApacheJMeter.jar 或者 jmeter.jar 或者 cmd命令窗口,输入jmeter  回车

     二、创建任务:

 

           1.创建线程组

               在jmeter界面,右键点击"测试计划-添加-Thread(User)-线程组"

            

          2.创建smapler -http请求     

            

        3.添加被测web服务器地址

           

        4.添加同步定时器,增加集合点,实现并发效果

            

         5.设置线程数

           例:对某个服务器做50的qps压测,需要增加线程数50(每个线程代表一个用户),设置同步定时器也需要设置为50,否侧jmeter会等待上一个请求返回,再执行下一请求,此时已经达不到并发的效果

          

             

        6.添加查看结果树和聚合报告

         

          

    三、查看报告与数据分析

        1.察看结果树

          察看结果树,最主要查看请求头、请求参数、响应体三块,在做压测之前,要确保请求参数和响应体与实际要执行压测的接口或服务器返回值预期一致

        2.聚合报告及分析

         

          Samples:请求总数量 ,即设置的线程总数
          Average:单个请求的平均响应时间。默认是单个Request的平均响应时间
          Median:中位数,也就是50%用户的响应时间
          90%Line:90%用户的响应时间
          95%Line:95%用户的响应时间
          99%Line:99%用户的响应时间
          Min:最小的响应时间
          Max:最大的响应时间
          Error%:错误率,本次测试中出现错误的请求的数量/请求的总数
          Throughput:吞吐量。默认情况下表示每秒完成的请求数,吞吐量=请求数/总时间
          Received KB/sec:每秒从服务器端接收到的数据量,即:收到的千字节每秒的吞吐量测试
          Sent KB/sec:每秒从客户端发送的请求的数量,即:发送的千字节每秒的吞吐量测试

         3.性能评估:

           行业性能测试标准(仅供参考)

          

         

分布式压测

     一、为什么要做分布式压测?

            按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。有时候为了尽量模拟业务场景,需要模拟大量的并发请求,这个时候单台压力机就显得有心无力。针对这个情况,jmeter的解决方案是支持分布式压测,即将大量的模拟并发分配给多台压力机,来满足这种大流量的并发请求场景

   二丶Jmeter分布式压测原理
           1、总控机器的节点master,其他产生压力的机器叫 slave
           2、master会把压测脚本发送到 slave上面
           3、执行的时候,slave上只需要把jmeter-server打开就可以了,不用启动jmeter
           4、结束后,slave会把压测数据回传给master,然后master汇总输出报告

  三、分布式压测的方法及注意事项

    设置步骤

          1.slave机上./Apache-jmeter/bin/jmeter.properties  文件中修改 server.rmi.ssl.disable=true ;server_port = 8899 ;server.rmi.localport = 8899(如果有多台,则都这样设置)
          2.master执行机上,./Apache-jmeter/bin/jmeter.properties  文件中修改 server.rmi.ssl.disable=true ; remote_hosts = slave机的ip:8899(如果是多台,则用“,”逗号分隔)

          3.slave机上启动jmeter-server服务

            

         4.master机上打开jmeter图形化工具

            

     注意事项

     1、保持slave和master机器的JDK、jmeter以及插件等配置版本一致;
     2、如果测试数据有用到CSV或者其他方式进行参数化,需要将data pools在每台master上复制一份,且读取路径必须保持一致;
     3、确保slave和master机器在同一个子网里面;
     4、检查防火墙是否被关闭,端口是否被占用(防火墙会影响脚本执行和测试结构收集,端口占用会导致master机报错);
     5、分布式测试中,通过远程启动代理服务器,默认查看结果树中的响应数据为空,只有错误信息会被报回;
     6、如果并发较高,建议将slave机设置为只启动测试脚本和收集汇总测试结果,在配置文件里去掉slave机的IP;
     7、分布式测试中,如果1S启动100个模拟请求,有5个master机,那么需要将脚本的线程数设置为20,否则模拟请求数会变成500,和预期结果相差太大。

    执行分布式压测:

          master机上准备脚本,如果脚本中存在本地数据调用,则需要在slave机上相同路径中保存一份

          运行:在master图形化界面,点击菜单栏-运行-远程全部启动/指定slave机执行,如果出现卡死,则需要检查slave机是否启动,或者命令是否接收成功

执行测试

      一、如何去开展性能测试

          在做压测之前,首先需要熟悉业务需求,被测服务器的实际应用场景及实际使用人数,找出合理的服务器瓶颈及性能瓶颈

     二、分析被测系统

         1. 为什么要分析被测系统?

 

                只有了解被测系统,才能更快、更合理的找出被测系统的性能指标和瓶颈             

          2. 如何测试?

                硬件:CPU、内存、带宽

                业务:使用人数、次数、最高峰值及原因、最低峰值、平均峰值、用户平均使用时间(基于业务评估)

                软件/接口:最大访问量的程序或者最耗服务器资源的接口

                测试方法:递增式测试、持续性测试、递增持续性测试,基于业务设计测试场景,找出服务器的CPU、内存、带宽瓶颈;模拟qps找出接口性能,根据行业测试标准表格对照实际业务进行分析;

原文地址:https://www.cnblogs.com/Ray-2019/p/14504828.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Jmeter:Authenticationcredentialswerenotprovided上次在使用Jmeter对手机app进行录制后,使用查看结果树对脚本进行回放,出现了{“detail”:“Authenticationcredentialswerenotprovided.”}的问题上次的链接地址:https://blog.csdn.net/Test20201990/article/details/
初次使用jmeter时,结果树中返回的数据为未转码内容,如下:  1、在后置处理器中增加beanshellpreprocessor,如下:  Strings=newString(prev.getResponseData(),"UTF-8");charaChar;intlen=s.length();StringBufferoutBuffer=newString
jmeter默认语言设置: 1、临时设置:进入options--ChooseLanguage-- 选择中文简体,设置后语言 切换成中文,重启失效 2、永久设置:进入jmeter目录下的bin目录,用文本编辑工具ue或notepad++等 打开jmeter.properties文件,进行编辑: 找到行: #language=en 修改为: language=
第一步:打开jmeter工具。 第二步:点击鼠标右击,点击添加_线程_线程组,新增线程组。 第三步:添加HTTP请求 第四步:点击页面调试器(以谷歌浏览器为例F12)填写协议,IP,请求,路径 第五步:1.填写参数2.若页面里面没有token可以拿authorization替代,则需要创建HTTP信息头管理器,并进行
在之前的博文中,Jmeter二次开发——基于Java请求,已介绍了Jmeter二次开发的基础情况,上次分享的是java请求开发,今天来分享下Jmeter中的函数开发。聊到Jmeter的函数,知道Jmeter使用的博友肯定很熟悉。Jmeter自带一个函数库,有很多的函数,比如:__P,__Random,函数助手给我们提供了很多的方便
打开虚拟机然后用远程连接工具SSH连接到数据库将serveragent.zip放到Linux环境中在虚拟机中复制路径进入到/opt/目录解压serveragent.zip修改端口为4444永久保存到防火墙中运行startAgent.sh连接虚拟环境里面的数据库更改地址切换路径修改SQL语句点击
jmeter断言之Beanshell断言(判断数据库结果是否符合预期)该篇文章主要讲一下beanshell断言处理数据库结果。(一)首先需要添加配置原件JDBCConnectionConfiguration连接数据库信息,然后发送jdbc请求获取预期结果。我现在使用得是result_variable_name获取得是响应结果集。接下来对数
《jmeter连接MSQL数据库指导》**一、**首先安装msql服务器。在桌面安装,过程中选择认证方式为之前的认证方式,新的认证可能会导致后面连接失败,报错认证问题。其次:打开安装好的数据库,新建一个database----例如:lhd然后再这个database里面新建一个表,例如:table01,然后表中可以自
前言本章主要讲述Windows环境下实现Jmeter+Ant+Jenkins自动化持续集成注:Jmeter+Ant+Jenkins实现集成的前提是这三者环境都已安装部署好关于Jmeter及Jenkins的下载安装我已在其他篇blog已讲述,这里主要讲一下Ant的部署配置传送门1)Jmeter:https://blog.csdn.net/Makasa/art
接口类型rest接口:通过http的get和post方式得到数据,返回报文为json格式soap接口:通过soap协议得到数据,相比httpservice更能处理复杂的数据,请求和返回报文都为xml格式接口测试作用1.在后端程序完成后,可尽早进行系统测试,发现bug2.解决系统测试复杂度,测试脚本运行速度快,节省
目录 一、Jmeter简介二、Jmeter安装三、设置Jmeter语言为中文环境四、Jmeter主要元件五、Jmeter元件的作用域和执行顺序六、Jmeter进行接口测试流程七、Jmeter进行接口测试流程步骤详解 八、总结如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、
在使用cookie管理器时,没有选择对应的策略会导致cookie传递不了下面来讲一讲这些用法 作用:用于管理Testplan运行时的所有的cookie。可以手动存储,也可以自动存储;每次反复清除cookie?:勾选后将每次请求结束后都会将本次请求产生的cookie进行清除,下次请求时重新获取。CookieP
接口测试及常用接口测试工具解析一、常见接口:二、前端和后端:三、什么是接口测试:四、接口组成五、为什么要做接口测试:六、接口测试怎么测:七、用什么工具测那些关于接口测试的二三事,首先大家要搞清楚,什么是接口,其次是前后端,之后逐一抽丝剥茧让它明朗起来,没有一蹴而就的事
jmeter接口java二次开发五步走第一步:了解jmeter处理java请求的流程​ Jmeter处理请求的流程:Jmeter会读取用户传入的数据,把数据初始化到Jmeter中。调用Java请求时,jmeter会运行内部的runTest函数,调用封装的JAVA接口,获取到返回数据获取到返回数据后,Jmeter可以把返回数据
1、添加断言1)先根据“结果树”中的“HTML”中的“响应数据”,找到需要检查的网页中的文本   2)复制上述内容,根据“结果树”中的“Text”中的“响应数据”,确定最终确定要检查的文本(可能含有标签)3)在线程组下找到需要检查的url,右击“添加”→断言→响应断言    
了解需求:1、性能测试过程中,我们经常需要对流程化的业务进行性能测试,其中涉及到很多接口,这时候问开发拿接口和参数就会降低工作效率,直接用jmeter的录制功能就能提高工作效率2、开发接口案例中,我们也经常会碰到一些上传、下载、导入等等一些接口功能,这些脚本如果直接问开发
 随机数https://blog.csdn.net/qq19970496/article/details/101027184随机日期https://blog.csdn.net/qq19970496/article/details/101027813随机字符串https://blog.csdn.net/qq19970496/article/details/101027925随机变量https://blog.csdn.net/qq19970496/article/details/1
JmeterP1性能测试关键指标1,这些指标大家看到后有什么感觉呢?对于功能测试,一般结果就两种,成功的或者是不通过的,有问题的和没问题的,有毛病的和没毛病的,比如打开网页,能打开就打开,打不开就打不开2,性能测试要更复杂一点,不能直接说行还是不行,要有一个参数,一个多维度的指标,来衡量他,比
  jmeter录制脚本示例  jmeter手工脚本编写与调试  业务逻辑实现之逻辑控制器  业务脚本参数化实现  jmeter处理cookie  beanshell脚本  jmeter脚本录制badboy:        
压力测试压力测试是考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在使用压力测试,我们希望找出其他测试方法更难发现的错误,其中有主要有两种错误类型:内存泄漏,并发和同步1.性能指标响应时间:响应时间是指客户端发起请求开始到客户端接收到从服务器返回的响应