性能测试工具 —— 掌握JMeter性能测试工具的入门要点!

2023-12-16

JMeter :是一款很优秀的开源性能测试工具。

从性能工具的原理划分

Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分:

(1)负载发生器:通过多线程模拟并发,对目标产品产生负载。

(2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。

(3)资源生成器:生成资源数据用于服务器、负载机的测试。

(4)报表生成器:根据测试中霍地的数据生成报表,提供可视化的数据显示方式。

测试计划元件


Test Plan (测试计划) :是创建测试任务的最大单位,包含了本次性能测试所有的相关功能,本次性能测试的所有内容都是基于同一个计划。

接下来我们再看一下计划下面有哪些功能模块(右键单击“测试计划”弹出菜单)。

Threads(Users)线程 用户

我们可以看到是有三种不同的线程组的,但是虽然名字不一样我们创建之后的界面是完全一样的,setUp theread Group 与terDown Thread Group 是新版本的JMeter新增的选项,我们看一下有什么用。

1) setup thread group

用于执行预测试操作的ThreadGroup。线程的行为和正常的线程组元件没有什么区别,唯一不同的是这些类型的线程会在执行测试前进行定期线程组的执行。

2) teardown thread group

用于执行测试后操作的ThreadGroup。线程的行为同样和正常的线程组元件没有什么区别,唯一不同的是这些类型的线程会在执行测试后进行定期线程组的执行。

这么说你可能还是不太明白他们和普通的线程组到底有什么不同,如果你有使用过loadrunner你就应该知道,loadrunner的脚本除了action里面是真正的我们要执行的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块,从本质上看这里的setup thread group 和 teardown thread group和他们是一样的。

3) thread group(线程组)

这个就是我们的核心内容所在了,这个就是我们添加的运行的线程,通常叫他线程组,线程组中的每一个线程我们都可以理解成我们模拟出来的虚拟用户,线程组中包含的线程数量在测试执行的过程中是不会发生改变的。

测试片段(Test Fragment)

测试片段是在2.5版本之后新加的一个选项。他是控制器上的一个特殊的线程组,它在测试树上与线程组处于同一层。但是它与线程组又有所不同,因为它不会被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。

控制器

JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller)。

取样器(Sampler)

取样器(Sample)是我们在性能测试过程中向服务器发送请求,记录响应信息等的最小单元,JMeter是支持很多种sampler的,这一点他非常强大,比如HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等都是完美支持的。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

逻辑控制器(Logic Controller)

逻辑控制器包含可两类元件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的,如 事务控制器、吞吐量控制器。

配置元件(Config Element)

配置元件(config element)用于提供对静态数据配置的支持,比如HTTP cookie管理器可以静态的保存cookie用来保持前后请求的关系。CSV Data Set config 可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改Sampler的默认数据。

定时器(Timer)

定时器(Timer)可以设置每个操作之间的等待时间,类似于LoadRunner里面的“思考时间”,等待时间是我们在性能测试中常用的控制客户端QPS的手段。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。

前置处理器(Per Processors)

顾名思义,用来在请求实际发出之前对请求进行特定的处理,比如可以定义一个用户参数为随机数,我们在实际请求中就可以使用这个随机数,达到批量发不同请求的目的。

后置处理器(Post Processors)

与前置处理器对应,后置处理器用于对Sampler 发出请求后得到的服务器响应进行处理,一般我们在这里提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。比如正则表达式提取器可以正则匹配响应中的参数并提取出来。

断言(Assertions)

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

监听器(Listener)

监听器是用来对测试结果数据进行处理和可视化的元件。其中图形结果、查看结果树、聚合报告都是我们经常用到的元件。

我们已经基本了解了JMeter的基本常用元件,我们的性能测试工作也主要是使用这些元件来完成测试任务。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

性能测试工具 —— 掌握JMeter性能测试工具的入门要点! 的相关文章

随机推荐

  • 如何搭建自动化测试框架?8年测试老司机浅谈一下!

    公司使用python selenium pytest来做UI自动化测试 我经历了从0开始搭建自动化工程 开发测试报告web服务 编写测试用例 经过了一段时间的磨合 感觉已经比较顺手了 这里梳理下我采用的自动化工程目录组织结构 整体目录结构及
  • Jmeter 性能 —— 搭建skywalking监控平台!

    1 环境搭建 注意核对系统时间是否正确 Datentpdate pool ntp org 在任意目录新建一个docker compose的目录 cd homemkdir docker compose 在docker compose的目录下
  • 【计算机网络概述】第一章:概论 1.1什么是Internet

    学习目标 什么是网络 什么是计算机网络 什么是互联网 前言 温馨提示 该文章是小编学习计算机网络的笔记 参考中科大的郑老师hh 这一章是非常重要的 是为之后的学习进行打基础 我们需要努力学习这一章的内容 跨过这座山 他们就会听见你的故事 一
  • 自动化测试:PO模式详解!

    PO Page Object 模式是一种在自动化测试中常用的设计模式 将页面的每个元素封装成一个对象 通过操作对象来进行页面的交互 概括来说就是 每个页面都有对应的PO类 PO类中包含了页面的元素定位和操作方法 测试脚本只需要调用PO类中的
  • C++异常处理(try catch throw)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 牛客做到一个题目 是c 异常处理的 做的时候感觉很陌生 这边学习一下 一 题目
  • 微信小程序UI自动化测试实践:Minium+PageObject

    小程序架构上分为渲染层和逻辑层 尽管各平台的运行环境十分相似 但是还是有些许的区别 如下图 比如说JavaScript 语法和 API 支持不一致 WXSS 渲染表现也有不同 所以不论是手工测试 还是UI自动化测试 都必须要在 iOS 和
  • 新手上路:盘点「性能测试」必须掌握的技术点

    前段时间 有一些小伙伴提出希望我们推送点性能测试的技术干货 所以 小编今天通过上网查资料 结合项目实操过程中的一些问题 总结了一些关于性能测试的内容 希望是大家想要了解的内容哈 1 性能测试的目的 首先 先来明确一个问题 我们为什么要给产品
  • Postman高级应用——变量、流程控制、调试、公共函数、外部数据文件

    Postman 提供了四种类型的变量 环境变量 Environment Variable 不同的环境 使用不同的环境变量 例如 测试过程中经常会用到 测试环境 外网环境等 全局变量 Global Variable 所有的接口运环境中变量值都
  • STM32F103

    提示 来源正点原子 参考STM32F103 战舰开发指南V1 3PDF资料 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 开发环境硬件普中科技 接线图在g
  • jmeter实现webservice接口测试

    其实可以用jmeter两种sampler进行webservice的测试 1 SOAP XML RPC Request 但是在jmeter3 2以后版本中已经取消了这个取样器 2 HTTP请求 下面分别介绍两种方式 一 首先需要使用soupU
  • pytest结合 allure 打标记之的详细使用

    前言 前面我们提到使用allure 可以生成漂亮的测试报告 下面就Allure 标记我们做详细介绍 allure 标记 包含 epic feature story title testcase issue description step
  • selenium 网页自动化-在访问一个网页时弹出的浏览器窗口,我该如何处理?

    前言 相信大家在使用 selenium 做网页自动化时 会遇到如下这样的一个场景 在你使用get访问某一个网址时 会在页面中弹出如上图所示的弹出框 首先想到是利用Alert类来处理它 然而 很不幸 Alert类处理的结果就是没有结果 并不能
  • unittest 数据驱动DDT应用

    前言 一般进行接口测试时 每个接口的传参都不止一种情况 一般会考虑正向 逆向等多种组合 所以在测试一个接口时通常会编写多条case 而这些case除了传参不同外 其实并没什么区别 这个时候就可以利用ddt来管理测试数据 提高代码复用率 但要
  • Appium知多少

    Appium我想大家都不陌生 这是主流的移动自动化工具 但你对它真的了解么 为什么很多同学搭建环境时碰到各种问题也而不知该如何解决 appium为什么英语词典查不到中文含义 appium是一个合成词 分别取自 application 的前三
  • google Protobuf

    之前一直把第三方开源库protobuf编译 但是么用过没了解过 这次正好看到这篇文章 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 网易看到的protobuf的新闻 然后百度查到原文 记录一下
  • Jenkins部署python接口自动化测试

    一 点击新建Item 二 指定源码和分支 私钥位置 C Users Administrator ssh 文件下 三 构建脚本编写 四 构建后操作 指定输出的 allure 结果目录 总结 感谢每一个认真阅读我文章的人 作为一位过来人也是希望
  • arm平台编译so文件回顾

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 几个点 二 回顾过程 1 上来就执行Makefile 2 编译第三方开源库 a文件 2 1 build sh脚本 2 2 Make
  • 聊聊Api接口优化的几个方法!

    我负责的系统到2021年初完成了功能上的建设 开始进入到推广阶段 随着推广的逐步深入 收到了很多好评的同时也收到了很多对性能的吐槽 刚刚收到吐槽的时候 我们的心情是这样的 当越来越多对性能的吐槽反馈到我们这里的时候 我们意识到 接口性能的问
  • 14:00面试,14:08就出来了,问的问题有点变态。。。。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到5月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • 性能测试工具 —— 掌握JMeter性能测试工具的入门要点!

    JMeter 是一款很优秀的开源性能测试工具 从性能工具的原理划分 Jmeter工具和其他性能工具在原理上完全一致 工具包含4个部分 1 负载发生器 通过多线程模拟并发 对目标产品产生负载 2 用户运行器 通常是一个脚本运行引擎 用户运行器