前言


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


  • 深入学习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. Ubuntu安装typecho博客

    Ubuntu安装typecho博客 简介 名称的来历 Typecho 是由 type 和 echo 两个词合成的,来自于开发团队的头脑风暴. Type,有打字的意思,博客这个东西,正是一个让我们通过打 ...

  2. 轻松玩转makefile | 变量与模式

    前言 本文通过简单的几个示例,以及对同一个Makefile进行几个版本的迭代,帮助快速的理解变量和模式规则的使用. 1.回顾 在上一篇文章中,我们使用Makefile编译fun.c和main.c这两个 ...

  3. java常用包下载地址(非maven)

    httpclient与httpcore: http://hc.apache.org/downloads.cgi jdbc: https://dev.mysql.com/downloads/connec ...

  4. Android里使用AspectJ实现双击自定义注解

    创建注解 首先创建一个双击注解. import java.lang.annotation.ElementType; import java.lang.annotation.Retention; imp ...

  5. python3 pip3 安装python-ldap失败

    pip3安装时提示 ERROR: Could not build wheels for python-ldap, uWSGI, M2Crypto, which is required to insta ...

  6. String--getline()

    #include <string> #include <sstream> #include <iostream> int main() { std::wstring ...

  7. 硬件开发笔记(十五):RK3568底板电路VGA显示接口原理图分析

    前言   前面输出了HDMI,LVDS,MIPI-DSI,这里还有一个常用的显示接口就是VGA了,这个用的不多了,一般板子都是hdmi了.  本篇分析底板VGA电路.   VGA接口   VGA(Vi ...

  8. Sourcetree 如何关联自己的gitlab仓库

    现在有些企业自己搭建了gitlab服务器,通过sourcetree从企业服务器拉取代码的时候会提示认证失败.今天搞了大半天才搞懂,给我自己做个笔记. 添加账户 托管服务商 选择 GitLab CE 托 ...

  9. 以下总结了Java一些面试前准备和技术参考题,希望对你有所帮助

    以下真实模拟JAVA面试场景: 感谢您参加我们的面试: 以下是我们总结一些面试前准备和技术参考题,希望对你有所帮助. 首先,你需要先准备下工作相关的自我介绍,包括以下内容: 几年 Java 开发经验, ...

  10. STL-stack模拟实现

    #pragma once #include<assert.h> #include<list> #include<vector> #include<deque& ...