一篇文章给你介绍jmeter——主要组件
我们今天来聊聊JMeter,源码主要介绍其关键组件。源码
首先,源码测试计划(Test Plan)作为JMeter测试的源码起点,是源码其他测试元件的容器。
线程组(Thread Group)代表并发用户,源码滑块条皮肤源码模拟用户发送请求。源码
取样器(sampler)定义实际请求内容,源码HTTP请求是源码常用方式。
监听器(Listener)用于收集测试结果,源码结果展示方式多样。源码
逻辑控制器(Logic Controller)自定义请求行为逻辑,源码与取样器结合模拟复杂请求序列。源码
断言(Assertions)判断请求响应是源码否符合期望,用于问题域隔离。源码
配置元件(Config Element)维护取样器需要的配置信息,CSV Data Set Config用于参数化。
前置处理器和后置处理器在请求生成前后完成相关工作,正则表达式提取器用于处理响应数据。
定时器(Timer)定义请求之间的延迟。
参数化设置允许请求参数值不同,提升测试灵活性。
CSV Data Set Config配置参数化文件,实现不同线程使用不同参数值。
动态数据关联通过正则表达式提取器获取动态服务器数据,确保请求成功。
使用命令行运行JMeter脚本,命令格式为JMeter -n -t my_test.jmx -l log.jtl。
利用XSLT分析JMeter结果文件,将结果文件扩展名改为.xml,并指定xsl文件路径。
JMeter进行分布式测试,通过多台机器分担负载,支持更大并发用户数。
聚合报告提供测试结果概览,包括请求数量、平均响应时间、吞吐量等。
今天的分享结束,喜欢的雷公指标源码朋友可以点赞、评论并关注。
JMeter点道为止系列(6)JMeter JSR内置变量使用I
通常使用JMeter自带元素构建测试已足够,但对于复杂业务逻辑测试,编写脚本实现更为高效。JMeter支持使用编程语言开发测试,BeanShell是最常用选择,但有时其效率受限。为解决此问题,引入了JSR组件,提供多种编程语言,如性能更好的Groovy语言。在JSR开发中,内置变量有助于简化脚本,提高测试开发效率。本文将基于JSR Groovy语言,详细介绍常用内置变量的用途。
JSR是Java规范提案,旨在定义可在Java平台上运行的脚本语言。其定义了多种脚本语言,如Groovy和JavaScript等。
JMeter JSR支持多种编程语言,默认使用Groovy。不同JMeter版本支持的语言版本不同,本文以JMeter5.2.1为例,列出支持的语言列表。
在JMeter的JSR组件中,内置变量广泛应用于不同元素,如JSR PreProcessor、Timer、Sampler、PostProcessor、Assertion和Listener。这些元素中都可使用内置变量,具体应用情况见下表。
常用内置变量列表如下:
Jmeter(四) - 从入门到精通 - 创建网络测试计划(详解教程)
在本节中,您将学习如何创建基本的测试计划来测试网站。您将创建五个用户,这些用户将请求发送到JMeter网站上的两个页面。另外,正102源码您将告诉用户两次运行测试。因此,请求总数为(5个用户)x(2个请求)x(重复2次)= 个HTTP请求。要构建测试计划,您将使用以下元素:线程组,HTTP请求,HTTP请求默认值和图形结果。有关更高级的测试计划,请参阅构建高级Web测试计划。
1.1添加用户 您要对每个JMeter测试计划进行的第一步是添加一个线程组元素。线程组告诉JMeter您要模拟的用户数量,用户应多久发送一次请求以及应发送多少次请求。继续并通过首先选择“测试计划”来添加ThreadGroup元素,单击鼠标右键以获得“添加”菜单,然后选择“添加”→“线程组”。现在,您应该在“测试计划”下看到“线程组”元素。如果没有看到该元素,则通过单击“测试计划”元素来“扩展”测试计划树。接下来,您需要修改默认属性。如果尚未选择线程组元素,则在树中选择它。现在,您应该在JMeter窗口的右侧部分中看到“线程组控制面板”(请参见下面的图1.1)
图1.1 具有默认值的线程组首先为我们的线程组提供一个更具描述性的名称。在名称字段中,输入JMeter Users。接下来,将用户数量(称为线程)增加到5。在下一个字段“加速周期”中,保留默认值1秒。该属性告诉JMeter启动每个用户之间要延迟多长时间。例如,如果您输入5秒钟的加速期,JMeter将在5秒钟结束时完成所有用户的启动。因此,如果我们有5个用户和5秒钟的加速期,则启动用户之间的延迟将为1秒(5个用户/ 5秒= 1个用户每秒)。如果将值设置为0,源码手册下载那么JMeter将立即启动所有用户。最后,在“循环计数”字段中输入值2。该属性告诉JMeter重复测试多少次。如果输入的循环计数值为1,则JMeter将仅运行一次测试。要让JMeter重复运行您的测试计划,请选择永久复选框。在大多数应用程序中,您必须手动接受在控制面板中所做的更改。但是,在JMeter中,控制面板会在您进行更改时自动接受它们。如果更改元素的名称,则在离开控制面板后(例如,选择另一个树元素时),树将使用新文本进行更新。有关完整的JMeter用户线程组,请参见图1.2。
图1.2 JMeter用户线程组
1.2添加默认的HTTP请求属性 现在我们已经定义了用户,是时候定义他们将要执行的任务了。在本部分中,您将为HTTP请求指定默认设置。然后,在第1.3节中,您将添加使用您在此处指定的某些默认设置的HTTP请求元素。首先选择“JMeter用户(线程组)”元素。单击鼠标右键获得“添加”菜单,然后选择“添加”→“配置元素”→“HTTP请求默认值”。然后选择此新元素以查看其控制面板(请参见图1.3)。
图1.3 HTTP请求默认值像大多数JMeter元素一样,“HTTP请求默认值”控制面板具有一个您可以修改的名称字段。在此示例中,将此字段保留为默认值。跳至下一个字段,即Web服务器的服务器名称/ IP。对于您正在构建的测试计划,所有HTTP请求都将发送到同一Web服务器jmeter.apache.org。在字段中输入此域名。源码usdt支付这是我们将指定默认值的唯一字段,因此请保留其余字段的默认值。HTTPRequest Defaults元素不会告诉JMeter发送HTTP请求。它仅定义HTTPRequest元素使用的默认值。有关完整的HTTPRequest Defaults元素,请参见图1.4。
图1.4 我们的测试计划的HTTP默认值
1.3添加Cookie支持 几乎所有的Web测试都应使用cookie支持,除非您的应用程序明确不使用cookie。要添加cookie支持,只需将HTTP Cookie Manager添加到测试计划中的每个线程组。这将确保每个线程都有自己的cookie,但会在所有HTTP Request对象之间共享。
图1.5 HTTP Cookie管理器要添加HTTP Cookie管理器,只需选择“线程组”,然后从“编辑”菜单或右键单击弹出菜单中选择“添加”→“配置元素”→“HTTP Cookie管理器”。
1.4添加HTTP请求 在我们的测试计划中,我们需要发出两个HTTP请求。第一个用于JMeter主页(jmeter.apache.org/),第二个用于Change页面(jmeter.apache.org/chang...)。JMeter按照它们在树中出现的顺序发送请求。首先将第一个HTTP请求添加到JMeter Users元素(添加→采样器→HTTP请求)。然后,在树中选择HTTP Request元素并编辑以下属性(请参见图1.6):
图1.6 JMeter主页的HTTP请求接下来,添加第二个HTTP请求并编辑以下属性(请参见图1.7:
图1.7 JMeter变更页面的HTTP请求
1.5添加侦听器以查看存储测试结果 您需要添加到测试计划中的最后一个元素是Listener。此元素负责将HTTP请求的所有结果存储在文件中,并提供数据的可视模型。选择JMeter Users元素并添加一个Graph Results侦听器(添加→侦听器→后端侦听器)。
1.6登录网站 宏哥在上边列举的不是这种情况,但是某些网站要求您先登录才能允许您执行某些操作。在网络浏览器中,登录名将显示为用户名和密码的表单,以及用于提交表单的按钮。该按钮生成POST请求,将表单项的值作为参数传递。要在JMeter中执行此操作,请添加HTTP请求,然后将方法设置为POST。您需要知道表单使用的字段的名称以及目标页面。这些可以通过检查登录页面的代码来找到。[如果很难做到,则可以使用JMeter Proxy Recorder(相当于一款web页面抓包工具,当然了你也可以使用其他的抓包工具)记录登录序列。]设置提交按钮目标的路径。单击添加按钮两次,然后输入用户名和密码详细信息。有时,登录表单包含其他隐藏字段。这些也将需要添加。
图1.8 示例HTTP登录请求
1.7选择同一用户或不同用户 创建测试计划时,在每个线程组迭代中,我们可以选择模拟运行多个迭代的同一用户,或模拟运行一个迭代的不同用户。您可以在线程组元素上配置此行为,并使HTTP缓存管理器,HTTP Cookie管理器,HTTP授权管理器受此设置控制。注意:敲黑板,敲脑壳啦!!! 在JMeter的最新版本中没有这部分内容了,不要大惊小怪的。可能这部分的内容不是很重要吧,随着版本的增加,Jmeter官方将这部分去掉了。
图1.9 选择相同或不同的用户您可以选择在CookieManager / CacheManager / Authorization Manager中清除cookie /缓存内容/授权,也可以选择由线程组控制。
图1. 使用线程组控制CookieManager
图1. 使用线程组控制CacheManager
图1. 使用线程组控制授权管理器
2.小结 好了今天的创建网络测试计划就分享到这里,下一篇宏哥带着小伙伴和童鞋们实战一下,小试一下牛刀。顺带说一下高级网络测试计划的创建。
JMeter基础
一、JMeter简介
JMeter是一款开源的性能测试工具,由Apache软件基金会维护。它主要用于测试Java应用程序,特别是Web应用程序的性能。JMeter可以模拟多种用户负载,测试服务器在压力下的表现,并生成详尽的测试报告。它支持HTTP、FTP、JDBC、Java等多种协议,并可以通过插件扩展其功能。
二、JMeter下载与安装
1. 安装环境要求
JMeter支持多种操作系统,包括Unix(如Solaris、Linux等)和Windows(、NT、、XP、WIN8)。
2. JDK下载与安装
安装JMeter之前,需要确保系统中已安装Java开发工具包(JDK)。下载与安装JDK后,设置环境变量,如JAVA_HOME,并在命令行中验证JDK安装成功。
3. JMeter下载与安装
从Apache JMeter官方网站下载JMeter,解压后即可使用。
4. JMeter环境配置
配置JMeter环境变量,如JMETER_HOME,并添加JMeter库文件路径到系统路径。
5. JMeter的Bin目录下的几个重要文件
解释JMeter执行文件和配置文件的作用。
6. 启动JMeter
双击JMeter的bin目录下的jmeter.bat(Windows)或jmeter.sh(Unix)启动JMeter。
三、JMeter组件介绍
1. 测试计划(Test Plan)
测试计划是JMeter测试的根元素,用于组织测试元件。
2. 线程组(Threads)
线程组用于模拟真实用户并发执行测试脚本,可以设置线程数来模拟用户负载。
3. 逻辑控制器(Logic controller)
逻辑控制器管理测试元件的执行顺序,如循环控制器允许控制循环次数。
4. 配置元件(Config element)
配置元件如CVS Data Set Config,用于读取测试数据,JMeter还提供了丰富的函数生成动态数据。
5. 定时器(Timer)
定时器用于设置请求之间的延迟时间,模拟用户思考时间。
6. 前置处理器(Pre processors)
前置处理器在线程执行之前执行,可用于修改请求数据等。
7. 取样器(Sampler)
取样器发送请求并获取响应,如HTTP请求、FTP请求、JDBC请求等。
8. 后置处理器(Post processors)
后置处理器在线程执行之后执行,可用于分析响应数据等。
9. 断言(Assertions)
断言用于验证响应数据是否符合预期,是测试通过与否的判断依据。
. 监听器(Listener)
监听器用于查看和分析测试结果,如图形结果监听器和查看结果树监听器。
四、组件执行顺序
JMeter测试元件的执行顺序为:配置元件、前置处理程序、定时器、取样器、后置处理程序(和断言,如果取样器结果非空)、监听器。
五、JMeter使用相关问题
1. JMeter的主要用途是接口测试和性能测试,支持多种协议,易于集成,支持录制和回放,具有完善的UI界面,多平台支持。
2. JMeter的使用场景包括在项目开发过程中测试服务器响应,校验数据库校验,评估接口并发性能等。
3. JMeter的主要用户是开发人员和测试人员,因其开源、免费、跨平台、支持多种协议和功能丰富而被广泛使用。
4. 使用JMeter需要了解接口工作原理、HTTP请求和响应、请求头、响应头、请求体的含义,以及响应状态码的定义。
5. 在JMeter中,预期结果和实际结果通过断言进行比较,断言提供了丰富的比较方法,如响应断言、字符串断言等。
6. JMeter的使用可以提升对前后端数据传输的理解,提高测试效率,提前发现问题,减少开发成本,加快产品上线周期,增强接口测试的测试点掌握。
7. JMeter的主流方向是性能测试和压力测试,以及接口测试。
JMeter 插件大全:提高性能测试效率
在性能测试领域,JMeter凭借其开源特性,为测试人员提供了强大的接口性能测试工具。然而,与商业化工具如LoadRunner相比,JMeter在功能全面性上略显不足。为了弥补这一缺陷,本文将介绍几个常用的JMeter插件,旨在提升性能测试效率。
首先,JMeter Plugins Manager是一个用于管理JMeter插件的工具。通过访问其官方网站进行下载并安装,测试人员可以轻松管理所有插件,只需点击“Options”然后选择“Plugins Manager”即可打开插件管理界面。
在管理界面中,测试人员可以安装、卸载或更新插件。插件管理功能为测试流程的优化提供了便利,允许测试人员根据实际需求选择合适的插件。
接下来,介绍三个基本的图形插件:Transactions per Second(TPS)、Response Times Over Time(TRT)和Active Threads Over Time。
TPS插件用于监控每秒事务数,是性能测试中重要的指标之一。它帮助测试人员实时查看服务器的TPS表现,包括整体趋势、实时平均值走向和稳定性等。
TRT插件关注事务响应时间,与TPS一起构成性能测试的核心指标。通过实时监控响应时间的平均值和整体走向,测试人员可以深入了解系统的响应效率。
Active Threads Over Time插件则侧重于监控活跃线程的数量变化,帮助测试人员分析并优化系统并发性能。
为了实现对服务器资源的全面监控,PerfMon Metrics Collector插件不可或缺。它允许测试人员在性能测试期间实时监控服务器资源使用情况,包括CPU、内存、I/O等,确保系统性能在测试过程中保持稳定。
要使用PerfMon Metrics Collector,测试人员需要先从github下载并安装ServerAgent。将压缩包上传至被测服务器,解压后,根据操作系统(Windows或Linux)启动相应的启动脚本。在JMeter中,通过“Listener”找到“PerfMon Metrics Collector”组件,配置完成后即可开始测试。
至此,本文介绍了几个常用的JMeter插件,它们在性能测试中扮演着至关重要的角色。通过合理利用这些插件,测试人员能够更高效地执行性能测试,获得更准确的测试结果。
2024-12-28 23:32
2024-12-28 23:22
2024-12-28 22:12
2024-12-28 21:29
2024-12-28 21:17