• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   前言  在我们写端到端测试之前,我们应该明确我们是基于一个用户的角度去测试我们的页面,所以这无关我们的所有源码,我们应该只专注于浏览器所呈现给我们的资源,包括页面上的element、控制台中network中的所有的请求以及导航栏上的url信息,这是我们可以去测试和观察到的所有的点。  语法实战  spec基本结构// https://docs.cypress.io/api/introduction/api.html import { DEV_SERVER } from '../config/conf' descri...
            0 0 1108
            分享
          • 软件质量评估模型:顾名思义,软件质量评估模型是用来评估软件的测试质量的,也就是说测试的效果是否符合预期。 软件质量评估模型是从3个方面对软件质量进行评估的,内容如下所示: 1.测试覆盖度评估 2.测试过程评估 3.bug结果分析 测试覆盖度评估主要是对需求的覆盖范围进行评估的。测试过程评估主要是对测试用例的执行情况进行评估的。而bug结果分析主要是对bug的修复情况,bug的趋势分析进行评估的,下面我们就对这些详细的说明一下。 测试覆盖度评估 测试覆盖度评估是测试能够对软件质量进行评估的基础,如果覆盖度不够,那会对产品质量造成直接的影响。 测试覆盖度主要就是测试需求覆盖度的评估,需求覆盖度是已...
            3 8 6909
            分享
          •   互联网的发展使得各种软件APP越来越多,这些软件APP要想占领市场,肯定要拿质量说话。  如果一个软件或者APP质量不过关,出现很多bug,这将直接影响到用户体验,从而带给企业难以承受的损失。基于此,作为软件质量的把关者,软件测试也越来越受到重视。  面对这样的发展前景,越来越多的人开始学习软件测试,也有不少人转行到软件测试。  那么软件测试行业到底如何?有学历要求吗?收入怎样?以后发展前景好吗?到底值得入行吗?下面就给大家做一个深度剖析。  1、软件测试行业发展前景如何?  其实在开篇我们也提到了,随着大数据、云计算的发展,很多大厂都认识到一个问题。用户群体越大,系统就会有更高的概率带来...
            0 0 733
            分享
          • 1. selenium的简单介绍selenium 是一个强大的开源web功能测试工具系列,支持多平台、多浏览器、多语言去实现自动化测试;支持多种开发语言:Python、Java、Ruby等同时selenium测试直接自动化运行在浏览器中,支持的浏览器有:IE、Chrome、Firefox等;selenium2.0的主要新功能是集成了WebDriver,WebDriver通过原生浏览器支持或者浏览器扩张直接控制浏览器。2. selnium的下载2.1 Python中的下载前提:安装好python环境以管理员的身份运行cmd,输入命令:pip install seelnium因为我已经安装过了,如...
            0 0 1447
            分享
          • 要编写一个较好的测试用例就应该从用户需求入手。比如如何测试一个用户登录界面,那么我们就要考虑这个登录界面是弹出式的还是内嵌网页式的,同时对用户名和密码的长度,密码的强度(必须多少位,特殊字符,数字,大小写等等),另外对用户界面的美观是否有相关要求?所以我们试着编写一下该问题的测试用例:功能测试什么都不输入,直接点击提交按钮,看提示信息;输入正确的用户名和密码,点击提交按钮,看是否能登录成功;输入错误的用户名或者错误的密码,点击提交按钮,看提示信息;登陆成功之后能否正确的跳转到正确的页面;用户名太短或者太长时,应该怎么处理;密码太短或者太长时,应该怎么处理;用户名若含有特殊字符,字母,数字等不同...
            0 0 1826
            分享
      • 51testing软件测试圈微信