前言


为什么要撰写这样一个教程呢?


  • 深入学习Jmeter

    温故而知新。尽管我已经使用JMeter很长时间,但还有许多元件我并不十分了解,因此,编写教程的过程成为了我的学习过程,通过反复回顾和整理知识,我能够更全面地掌握JMeter。

  • 分享知识

    我深信知识具有强大力量,而这种力量应该共享,我愿意将我的所学分享给志同道合的朋友——也就是你们。它不仅能够为他人提供帮助,EtherealBoyJiang还能够在这个过程中体验到一种内在的满足感。

  • 结识朋友

    这是我的第一个教程,后续也会编辑更多的教程。希望能通过这一行为与各位取得交流,成为朋友,与大家一起讨论更多的事情。


关于Jmeter


JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。


我们为什么使用Jmeter


  • 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件

  • 支持接口测试,压力测试等多种功能,支持录制回放,入门简单

  • 相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试

  • 多平台支持,可在Linux,Windows,Mac上运行selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。


主要组件介绍


  • 测试计划(Test Plan)

    是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器。

  • 线程组(Thread Group)

    代表一定数量的并发用户,它可以用来模拟并发用户发送请求。

  • 取样器(sampler)

    定义实际的请求内容,被线程组包含,我们主要用HTTP请求。

  • 监听器(Listener)

    负责收集测试结果,同时也被告知了结果显示的方式。我们常用的包括:聚合报告、察看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。

  • 逻辑控制器(Logic Controller)

    可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

    其分为循环控制器和事务控制器。

  • 断言(Assertions)

    可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。

  • 配置元件(Config Element)

    维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSV Data Set Config。

  • 前置处理器(Pre Processors)和后置处理器(Post Processors)

    负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。

  • 定时器(Timer)

    负责定义请求之间的延迟间隔。

  • 执行顺序(Execution sequence)

    配置元件、前置处理器、定时器、取样器、后置处理器、断言、监听器


工作流程


JMeter通过模拟一组用户将请求发送到目标服务器。 随后,收集数据以通过各种格式计算目标服务器的统计和显示性能度量。


内容引用


Jmeter测试组件介绍|EMQ

鸟哥教程

本系列教程中部分文本引用于此


示例接口代码


下载示例代码  

本系列文章中所有示例接口皆由python编写,python版本为3.12.1,如要使用示例接口请安装python3.12.1与pycharm。

压缩包内包含源码和使用说明。


说明


对于测试人员来说,JMeter是一款非常强大的接口测试工具,尤其在性能测试方面表现出色。希望读者们通过EtherealBoyJiang编写的系列教程,能够熟练掌握JMeter的使用。

本文基于JDK21、Jmeter-5.6.3测试编写,可能不适用于历史版本及未来版本。如果Jmeter在后续的新版本中有所变化,或者文中有错漏的地方,请联系EtherealBoyJiang,EtherealBoyJiang感激不尽。

对EtherealBoyJiang来说,能够帮助到读者是一件莫大的荣幸,期待更多读者通过本系列教程获得成长。


Jmeter前言的更多相关文章

  1. Ant将Jmeter的jtl文件转为html文件报“前言中不允许有内容”

    ant执行jmeter的脚本的时候提示“Fatal Error! 前言中不允许有内容” 解决办法: 在jmeter的bin目录中找到jmeter.properties: 将文件中#jmeter.sav ...

  2. 微信小程序性能测试之jmeter踩坑秘籍(前言)

    最近要做个微信小程序的性能压测,虽然之前只做过web端的,但想一想都是压后端的接口,所以果断答应了下来,之前对jmeter都是小打小闹,所以趁着这次机会好好摆弄摆弄. ---------------- ...

  3. JMeter常见问题集合

    前言 本文内容仅仅是针对Jmeter的部分功能名词的介绍和解释,以及初学者不易理解的问题的整理.部分内容来自别人做的整理,为了更好地整理自己的思路,所以可耻的整理一下发到博客上. 标题[1-6]和[参 ...

  4. JMeter 问题

    1.  JMeter 测试计划 测试计划 使用 JMeter 进行测试的起点,是其它 JMeter 测试元件的容器. 线程组 代表一定数量的并发用户,它可以用来模拟并发用户发送请求.实际的请求内容在S ...

  5. 基于webdriver的jmeter性能测试-Selenium IDE

    前言: 由于某些项目使用了WebGL技术,需要高版本的Firefox和Chrome浏览器才能支持浏览,兼容性很弱,导致Loadrunner和jmeter(badboy)无法正常进行录制脚本.因此我们采 ...

  6. Jenkins+Jmeter+Ant接口持续集成

    修改时间 修改内容 修改人 2016.5.22 创建 刘永志 2016.6.15 完成 刘永志 前言: 为什么要用Jmeter做接口测试: 当选择这套方案的时候,很多人会问,为什么选择Jmeter做C ...

  7. 【后台测试】Linux下小试jmeter

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处.  转载请注明出处:http://www.cnblogs.com/by-dream/p/5784288.html 前言 上一篇主要讲了在Window ...

  8. Jmeter之逻辑控制器(Logic Controller)

    Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...

  9. (转)使用Jmeter进行http接口测试

    前言: 本文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对 ...

  10. 【jmeter】ANT批量执行Jmeter脚本

    一.环境准备: 1.Jdk1.6或以上:命令行输入:java -version,出现如下提示说明安装成功 2.ANT下载:http://ant.apache.org/bindownload.cgi 命 ...

随机推荐

  1. 【译】使用.NET将WebAssembly扩展到云(二)

    原文 | Richard Lander 翻译 | 郑子铭 轻量级功能 嗯--但是如果我们使用 Wasm 更像是一个典型的功能而不是一个应用程序,我们可能不会计算一百万个单词,而是做一些更轻量级的事情. ...

  2. NC24755 [USACO 2010 Dec S]Apple Delivery

    题目链接 题目 题目描述 Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course ...

  3. NC24734 [USACO 2010 Mar G]Great Cow Gathering

    题目链接 题目 题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, ...

  4. Java线程状态(生命周期)--一篇入魂

    1.线程状态(生命周期) 一个线程在给定的时间点只能处于一种状态. 线程可以有如下6 种状态: New (新创建):未启动的线程: Runnable (可运行):可运行的线程,需要等待操作系统资源: ...

  5. MutationObserver对象

    MutationObserver对象 MutationObserver (W3C DOM4)对象提供了监视对DOM树所做更改的能力,其被设计为旧的Mutation Events功能的替代品(该功能是D ...

  6. wordpress设置固定链接404及伪静态配置

    说明 最近在将wordpress设置中文章url修改为月份和名称型 之后访问文章出现404.原因是配有配置好apache的伪静态. 配置步骤 1.修改httpd.conf 我这里是centos7,默认 ...

  7. Innodb存储引擎的文件

    目录 概述 参数文件 日志文件 错误日志 慢查询日志 查询日志 二进制日志 binary log 二进制日志的配置 二进制日志的作用 二进制日志的保存 socket 套接字文件 pid文件 MySQL ...

  8. 用Taro写一个微信小程序——Taro3路由传参

    参考https://docs.taro.zone/docs/router 1.传入参数 Taro.navigateTo({ url: '/pages/page/path/name?id=2&t ...

  9. mysql进阶语句优化---day40

    # ###part1: sql语句优化 #(1) mysql 执行流程 客户端: 发送连接请求,然后发送增删改查sql语句进行执行 服务端: 1.连接层:提供和客户端连接的服务,在tcp协议下 提供多 ...

  10. java+mysql学生信息管理系统

    实现:mysql+eclipse(idea设置之后也可运行)+jdk8 功能: 管理员:管理登+管理员注册 学生:添加学生信息+删除学生信息+修改学生信息+查询学生信息+学生列表展示 界面展示: 详情 ...