• 0
  • 0
分享

      前言:想知道jmeter压测的原理是什么,得先知道性能测试的核心三原则:基于协议,多线程,场景模拟!

      基于协议:基于应用层和传输层的各种协议。比如http,udp,ftp,tcp等

      多线程:通过进程下启动线程的方式来模拟并发用户实现负载

      场景模拟:通过模拟用户使用的真实场景,来提高性能测试的准确性

      jmeter压测的核心原理就是:基于各种协议,通过多线程的方式来模拟并发用户,设计各种场景来模拟真实的用户负载

      所谓压力,其实就是单位时间内向服务器发起的请求数。jmeter在设计压力模式的时候,引入了两层概念。第一是线程,第二是迭代。一个人在单位时间内,可能发起一次请求,也可能发起多次,那么jmeter就通过线程*迭代,来模拟单位时间内用户多次发起请求的场景。

      我们把单位时间内线程*迭代的次数称之为压力

      JMETER是运行在JVM虚拟机上的,每个进程的开销比loadrunner的进程开销大,如果以进程的方式来运行每台负载机上的进程数量不会允许太多,当有大量并发时就需要大量的负载机,jmeter选择了以线程方式来运行。jmeter通过线程组来驱动多个线程运行测试脚本对被测服务器发起负载,每一个负载机上都可以运行多个线程组。jemter运行场景不仅可以再gui方式中完成,还可以运行命令行,而且命令行的运行方式对于负载机的  资源消耗会更小。Jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果;

      如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;

      如果取样器中有关联需求,可以通过后置处理器来完成;

      如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;

      如果要模拟并发场景,可以通过定时器来完成;

      如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成;

      一:jmeter远程运行,远程运行架构图

图1.png

      在这里插入图片描述

      1:控制机

      运行多台jmeter负载机进行性能测试时,被选中作为管理机的那台机器就是控制机。控制机也可以参与脚本的运行,同时它也担负管理远程负载机指挥远程负载机运行工作,且收集远程负载机运行测试结果。

      2:负载机

      负载机就是向被测应用服务发起负载(请求)的机器。控制机同时也是一台负载机。jmeter负载机受控制机(jmeter负载机)的管理。与支持其他远程运行的测试工具一样,负载机受控制机管理首先要启动一个客户端程序(Agent:jmeter-server.bat),这样控制机才可以接管负载机。控制机会把运行的脚本隐蔽的发送到远程负载机,但是运行的测试脚本有参数文件或者依赖jar包时,控制机并不能把他们发送到远程负载机,这种情况就需要手动拷贝,也可以用工具实现自动拷贝。

      3:远程运行逻辑

      远程负载机首先启动agent程序,待控制机连接;控制机连接上远程负载机;控制机发送指令(脚本及启动命令)启动线程;负载机运行脚本,回传状态(包括测试结果);控制机收集结果并显示


作者:Detail-L

文章链接:https://wenliang.blog.csdn.net/article/details/108200572

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1.你是如何看待帮助别人工作?答:经过领导同意,在不影响自己的本职工作的前提条件下,我很支持同事之间的互帮互助。2.测试流程你们公司是怎么开展的答:我们公司是需求评审—编写测试用例—用例评审—执行测试(冒烟测试—系统测试—回归测试)—测试报告—上线3.项目上线的原则答:测试用例全部执行完成需求全部覆盖BUG单全部关闭4.版本谁来发布?答:开发发布版本5.测试工程师平时的工作答:参与需求评审编写测试用例测试用例评审执行测试用例提交bug,跟踪bug提交测试日报提交测试报告过程的评价软件本身的评价6.测试报告发给谁,内容?答:发给项目相关人员,开发,产品,UI,同组测试人员内容:测试范围,准出标准...
            0 0 1826
            分享
          •   之前我们讲了电商erp系统的接口简介以及如何使用Postman实现接口功能测试,今天我们来讲解如何用JMeter实现接口功能、性能测试。  内容:  JMeter实现接口功能测试  JMeter实现接口的性能测试  JMeter实现接口功能测试  企业性能测试编写脚本过程:接口功能测试脚本调试通过--->脚本优化(性能测试脚本)。  接口脚本调试  新增货品接口的请求4要素  1、请求地址:  https://open.jackyun.com/open-platform/developer/intercept/testtool/buildparamandrequest  2、请求方法...
            0 0 1401
            分享
          • 1 引言记得小鱼在上一篇聊到三种高性价比的测试,有的测开的同学就反馈,写的还过得去,希望再多讲一些测开领域资深的内容。好的, 安排~ ~我们今天就来聊一聊,测试模型。我们都知道,项目有项目的模型,那么,测试策略,是否也有模型呢?2 金字塔2.1 金字塔模型 引入金字塔模型,是一种非常重要也很常见的软件测试策略模型,在很多场合被奉为“金科玉律” 。测试金字塔告诉我们,在单元测试,集成测试和端到端测试三个阶段的测试资源投入,应该满足接近7:2:1的关系。在金字塔模型中,软件测试的重心是在开发阶段的单元测试。通过测试左移和质量内建,从源头上保障软件质量,实现预防bug(而非发现bug)的目标。单元测...
            1 0 30374
            分享
          •   上一章我们剖析了如何修炼自身面试情商,避免在面试中触礁。不过,江湖险恶,面试场上总会偶遇各类“特色鲜明”的面试官。比如说,在加入蚂蚁之前,本人也曾与某二线互联网车企的面试官上演了一段有趣的小插曲:  “哟,您的经验挺丰富啊,技术水平看着也蛮不错的,还有出版书籍的经历呐?”  那时年少轻狂的我,瞬间接招:“哎呀,您真是高手啊,我也正期待拜读您的大作呢,到时候可别忘了给我打电话通知一声。”随后潇洒转身,扬长而去。  随着自己升级为面试官,接触了更多同仁和面试场景后,我发现每位面试官都有自己独特的性格色彩,甚至同一面试官在不同时间和情绪状态下也会呈现出迥异的面试风格。  “暖男”式面试官的“温柔...
            0 0 259
            分享
          •   1、压测机  无论是从成本角度还是维护的难易方面,压测机的数量,适量就好。举个例子,8C16G的一台服务器,部署Jmeter后,根据我个人的测试比对数据,配置≤1500个线程数,最好。太多了性能损耗较大,延时高;太少了又浪费。controller与agent:模拟的并发线程数超过5K,建议留出一台做专门的controller机器,主要是避免agent机器数据上报带来的影响。服务授权:如果压测启动和服务配置都是root权限,那么在linux环境下,需要给jmeter和jmeter-server授权,命令为:  chmod 777 jmeter  2、服务通信  所有的压测...
            0 0 912
            分享
      • 51testing软件测试圈微信