前言


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


  • 深入学习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. 如何用低代码实现批量导出PDF?

    前言 事情是这样的,熟悉我们的朋友都知道,我司有一个为广大开发者朋友们提供学习帮助的地方,叫做新手训练营,具体的内容就是会针对初次接触葡萄城产品和技术的用户,通过 2-3 天的集中学习,采用直播授课的 ...

  2. NC16576 [NOIP2012]摆花

    题目链接 题目 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n 种花,从1 到n 标号.为了在门口展出更多种花,规定第i ...

  3. NC20875 舔狗舔到最后一无所有

    题目链接 题目 题目描述 作为队伍的核心,forever97很受另外两个队友的尊敬. Trote_w每天都要请forever97吃外卖,但很不幸的是宇宙中心forever97所在的学校周围只有3家fo ...

  4. centos7安装mailx

    1.安装mailx yum install mailx -y 2.配置证书 mkdir -p /root/.certs echo -n | openssl s_client -connect smtp ...

  5. OsgEarth开发笔记(二):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(中)

    上一篇:<OsgEarth开发笔记(一):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(上)>下一篇:敬请期待-   前言  上一篇编译了osg和osgCurl ...

  6. React 受控和非受控组件

    无论你做什么,都要相信自己可以做到,因为你的潜力是无限的. 把父组件的状态变成属性传递给子组件,子组件接受这个属性,听命于父组件.这个子组件就是叫做受控组件.在受控与非受控组件有两种理解方案,第一:狭 ...

  7. docker开发

    Docker docker介绍 Docker是一个客户端-服务器(C/S)架构程序.本质上是通过go语言对lxc技术的一个封装,遵守Restful规范 docker hub注册一个账号(用来拉取镜像) ...

  8. 我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)

    好家伙,   先说一下我的需求,我要组件间传值 1.eventBus 前端兄弟组件传值eventbus无法使用 不报错也不触发,就很奇怪 //eventBus.js import Vue from & ...

  9. 【Azure Redis 缓存】Azure Redis 异常 - 因线程池Busy而产生的Timeout异常问题

    问题描述 StackExchange.Redis在使用线程池后,偶尔会出现Timeout awaiting response 或者 No connection is available to serv ...

  10. STM32标准库内部Flash读写

    STM32标准库FLASH读写 1. STM32内部FLASH介绍 STM32系列一般集成有内部flash,这部分内存可以直接通过指针的形式进行读取.但是由于内部flash一般存储为重要数据或程序运行 ...