性能测试工具 —— 掌握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性能测试工具的入门要点! 的相关文章

  • 一文让你快速写出高效的软件测试用例

    前言 编写测试用例的目的就是确保测试过程全面高效 有据可查 但要编写出高效的测试用例 需要搞清楚什么是测试用例 以及如何编写出高效的测试用例 接下来将从以下几个部分来进行展开 1 什么是测试用例 2 如何编写测试用例 3 软件测试学习资源分
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • 如何在jmeter中设置IP欺骗?

    我现在正在我的机器上通过 jmeter 对网站进行负载测试 但我想要一个真实的场景 那么 jmeter 是否可以使用 ip 别名或 ip 欺骗 这看起来像是从不同的 ip 地址发送请求 是的 可以 查看属性源IP地址 http jmeter
  • JMeter 中默认的响应超时是多少?

    如果我们没有在 HTTP 请求 采样器中设置任何超时 任何人都可以帮助了解 JMeter 中的默认响应时间吗 Thanks 它默认为0 无超时 设置超时的推荐方法是使用 GUI 如果由于某种原因它不适合您 您可以使用以下属性 用户属性 fi
  • jmeter HTTP响应代码:org.apache.http.conn.HttpHostConnectException,非HTTP响应消息:连接被拒绝错误

    我正在使用 JMeter 测试负载 我正在使用 Amazon Server 当我测试 400 个并发用户的负载时 我收到错误消息 HTTP response code org apache http conn HttpHostConnect
  • CentOS 中的 JMeter 整数表达式预期错误

    在 CentOS 中执行 JMeter 脚本时出现以下错误 我的JMeter版本是4 0 Java是1 8 我的脚本在 Windows 中运行良好 这是我的 JMeter 命令和我收到的错误 root localhost bin sh jm
  • JMeter(活动?)FTP 到 VLTrader

    情况 我正在使用 JMeter 来加载测试我的通信应用程序 Cleo VLTrader 我是 JMeter 的新手 并且能够使 HTTP 通信工作 但不能使 FTP 工作 当我尝试使用 JMeter FTP 请求采样器时 我可以在服务器端看
  • 负载测试时如何测量CPU和内存

    我们在异构环境中使用 JMeter 并且希望在运行服务或 Web 应用程序的服务器上产生重负载时测量 CPU 和内存 您建议使用什么 是否有任何软件解决方案 开源或商业 可以将 CPU 和内存使用情况记录在文件或数据库中 谢谢你 您可以使用
  • 每个线程组的概率

    如果我的测试计划中有 3 个线程组 如何为每个组设置恒定概率 请求权重 我是 JMeter 的新手 您能在屏幕截图上显示您的设置吗 只需将每组的线程数设置为测试总线程数的一个因子即可 如果有 100 个 VU 则 g1 设置为 50 g2
  • 使用 JMeter 对 1000 个用户进行负载测试时,Apache Tomcat 连接被拒绝错误

    我已经在 Linux 和 Apache Tomcat 7 0 42 中部署了 Java EE 应用程序 当我使用 JMeter 对 100 个用户进行负载测试 并发 100 个线程请求 时 一切正常 但是 一旦我将用户 或线程数 更改为 1
  • Apache JMeter 的 Cookie 管理器未将 cookie 添加到 POST 请求

    我制定了非常简单的测试计划 登录 POST 返回会话cookie 获取状态 GET 返回用户状态 创建资源 POST 为资源提供 JSON 正文 所以我的 测试计划 如下所示 Test Plan Thread Group HTTP 请求默认
  • 如何通过java编码生成Jmeter仪表板报告。 (不是 Windows 或 shell 命令)

    我必须通过java编码生成Jmeter仪表板报告 在java代码下面 我用来生成正常的jmeter报告 我必须生成一个 通过java的仪表板报告 public class JMeterFromExistingJMX public stati
  • 使用 JMeter 将文件上传到 Rest API

    注意 我已经检查过BlazeMeter 教程 https www blazemeter com blog testing advanced rest api file uploads jmeter当我使用 文件上传 选项卡时 它将文档作为正
  • 使用参数作为用户定义变量?

    我们在非 GUI 模式下运行测试 并传入各种参数 如服务器 端口 线程等 我们还希望在 GUI 模式下运行测试 并能够在 GUI 中更改这些参数 我想做的是使用 2 个用户定义的变量对象 其中一个包含我们可以编辑的静态数据 另一个包含参数
  • 尝试使用 JMeter API 生成 JMeter 测试计划 (jmx):从代码创建的 jmeter jmx 文件与 JMeter 创建的文件不匹配

    我正在尝试使用 jmeter java api 创建 jmeter jmx 文件 这就是我所做的 gui jmx 使用 jmeter gui 应用程序创建一个参考 jmx 文件 我可以将其进行比较 对于测试计划 我仅添加一个线程组和线程组内
  • 通过 Jmeter 从 Phantomjs 收集客户端性能指标

    在整个 PhantonJS 驱动程序配置中 我们有什么方法可以通过 phantomjs 使用 Jmeter DomLoad WindLoad ResourceCount 资源大小来捕获以下客户端性能指标 Thanks 我建议使用捕获指标WD
  • PhantomJS CPU(核心)受限吗?

    我开始做一些基于并行浏览器的测试 并想看看在达到 100 CPU 之前我可以在 EC2 大型机器上并行运行多少个浏览器 我正在使用 JMeter webdriver 插件来实际运行浏览器 对于 FireFox 实际上每个 CPU 核心有 1
  • 使用jmeter测试多个网站

    如何使用jmeter测试100个不同的网站 来自DMOZ 我认为可以通过将jmeter与脚本集成来完成 基本上 该脚本是告诉 jmeter 从文本或 csv 文件中读取 URL 并将 http 请求采样器更改为文件中的 URL 以运行测试
  • 如何让Jmeter识别“localhost”URL?

    如何对只能由我的计算机访问的 localhost url 进行性能测试 我可以使用 jmeter 对 google 等实时网站进行性能测试 但 jmeter 无法检测本地 url 应用程序的 URL 192 168 121 20 80012
  • 手动设置Jmeter主目录

    根据这个帖子 http jmeter 512774 n5 nabble com Automatic generation of aggregate reports td4281459 html Jmeter home被自动检测到 有没有办法

随机推荐

  • 如何搭建自动化测试框架?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 用户运行器 通常是一个脚本运行引擎 用户运行器