热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【性能测试】Jmeter基础

文章目录一、Jmeter的组成二、Jmeter组件介绍一、Jmeter的组成Jmeter组成断言:适合做自动化测试,多并发不推荐用断言,


文章目录

    • 一、Jmeter的组成
    • 二、Jmeter组件介绍


一、Jmeter的组成

Jmeter组成
在这里插入图片描述


  • 断言:适合做自动化测试,多并发不推荐用断言,性能测试不是准确性测试。

  • 配置元件:并发前,配置信息。

  • 后置处理器:并发完成之后想要做些什么,可以用来处理关联问题。

  • 前置处理器:请求发生前要干什么。

  • 逻辑控制器:当满足了什么什么,就做什么什么。

    女朋友对程序员说: “亲爱的,去超市买一个西瓜吧, 如果他们还有鸡蛋,再买20个。” 结果程序员带了21个西瓜回家。 女朋友愤怒地说:“为什么买21个西瓜回来”? 程序员答:“因为他们确实有鸡蛋”。
  • Sampler:放的是真正意义上的请求。


二、Jmeter组件介绍


  • 线程组——Jmeter实现多并发
    负载发生器,用多线程或多进程的方式来模拟用户的使用行为。Jmeter是以线程的方式来进行模拟用户的并发访问的。


  • 逻辑控制器——Jmeter实现逻辑分支控制
    用来控制测试脚本的逻辑判断,也可以理解为如何控制脚本的运行。例如:如果控制器,就是当满足什么样的条件后执行哪一步操作。


  • 配置元件——Jmeter实现配置管理
    用来提供一些配置相关的信息,如Http请求头、COOKIE管理,提供参数化数据。还可以进行用户自定义变量等配置,定义常量等。

    • JDBC Connection Configuration
      在这里插入图片描述
    • JDBC Request
      在这里插入图片描述

  • 前置处理器——Jmeter实现请求预处理
    用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,用户参数,可以在实际发送请求之前来定义变量,可以在后边的实际请求中进行使用。


  • 定时器——Jemeter集合点、定时并发
    用于操作与操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。类似于LoadRunner里的“思考时间”。设置等待时间主要是为了模拟用户实际的使用场景。


  • Sampler——Jmeter实现各种请求的发送
    取样器,是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,Jmeter原生支持多种不同的Sampler。


  • 后置处理器:Jmeter实现关联
    (关联概念的应用器)用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特点数据。

    • 正则表达式提取器:常用来提取token
      在这里插入图片描述
      Regular Expression:
      ():表示封装待返回的匹配字符串
      .:匹配任何字符
      +:一次或多次
      ?:不要贪婪,在找到第一个匹配项后停止
      .*:任意字符
      \d:数字字符匹配,等效于[0,9]

      Template:
      $0$:获取表达式中的全部内容 (name=tj_login class=lb>登录)
      $1$:获取表达式中匹配到的第一个内容 (lb)
      $1$$2$:表达式中匹配到的第一个内容和第三个内容的拼接(lb登录)

      Macth No.:
      正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。当为 0 时,随机返回匹配的数据。

      Default Value:
      匹配失败时的默认值。通常用于后续的逻辑判断,可以使用一些特殊含义的,比如0,NULL,ERROR等。


  • 断言——Jmeter实现数据预判
    断言用于检查测试中得到的相应数据是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。


  • 监听器——Jmeter实现监控数据可视化
    用来对测试数据进行处理和可视化展示的一系列组件。例如:查看结果树,聚合报告。


  • 函数助手
    Tools->Function Helper Dialog
    选择函数->填写值-> 生成函数名

    • 随机数(_Random)

    • 参数化助手(_CSVRead):以文件的形式做参数化
      在这里插入图片描述
      csv文件列号:从0开始

    • 计数器(_counter)
      计数器生成
      全局计数器(true)和线程计数器(false)区别
      全局计数器(true)和线程计数器(false)区别

    • 唯一数(_UUID)


推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
author-avatar
爱恨情仇4131_120
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有