Jmeter基础详解

张开发
2026/5/18 18:32:08 15 分钟阅读
Jmeter基础详解
点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快Jmeter 介绍 一个非常优秀的开源的性能测试工具。优点你用着用着就会发现它的重多优点当然不足点也会呈现出来。从性能工具的原理划分Jmeter工具和其他性能工具在原理上完全一致工具包含4个部分1负载发生器用于产生负载通常以多线程或是多进程的方式模拟用户行为。2用户运行器通常是一个脚本运行引擎用户运行器附加在线程或进程上根据脚本要求模拟指定的用户行为。3资源生成器用于生成测试过程中服务器 、负载机的资源数据。4报表生成器根据测试中获取的数据生成报表提供可视化的数据显示方式。测试计划元件Test Plan (测试计划)用来描述一个性能测试包含与本次性能测试所有相关的功能。也就说本的性能测试的所有内容是于基于一个计划的。下面看一下一个计划下面都有哪些主要的功能模块右键单击“测试计划”弹出菜单。Threads Users线程 用户虽然有三个添加线程组的选项名字不一样 创建之后其界面是完全一样的。之前的版本只有一个线程组的名字。现在多一个setUp theread Group 与terDown Thread Group1) setup thread group一种特殊类型的ThreadGroup的可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是这些类型的线程执行测试前进行定期线程组的执行。2) teardown thread group.一种特殊类型的ThreadGroup的可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是这些类型的线程执行测试结束后执行定期的线程组。可能你还是不太理他们与普通的线程组有什么不同。 如果您用过junit想必你不会对setup teardown这2个字眼陌生。 即时每用过也没关系。 熟悉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 等每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。在jmeter 的所有sampler 中Java Request Sampler 和 Beanshell Request Sampler 是两种特殊的可定制的 Sampler 后面会深入讨论。逻辑控制器Logic Controller逻辑控制器包括两类无件一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器常用的有 如果If控制器 、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的如 事务控制器、吞吐量控制器。配置元件Config Element配置元件config element用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池Data Pool而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改Sampler的默认数据。例如HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的cookie 进行管理定时器Timer定时器Timer用于操作之间设置等待时间等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的“思考时间”。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。前置处理器Per Processors用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如HTTP URL重写修复符则可以实现URL重写当RUL中有sessionID 一类的session信息时可以通过该处理器填充发出请求的实际的sessionID 。后置处理器Post Processors用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据类似LoadRunner测试工具中的关联概念。例如XPath Extractor 则可以用于提取响应数据中通过给定XPath 值获得的数据。断言Assertions断言用于检查测试中得到的相应数据等是否符合预期断言一般用来设置检查点用以保证性能测试过程中的数据交互是否与预期一致。监听器Listener这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。 图行结果、查看结果树、聚合报告。都是我们经常用到的元件。到此我们已经简单了解了jmeter的基本组成原件我们后序的性能测试工作也就是使用这些元件来完成测试任务。最后下方这份完整的软件测试 视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】​​​软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。

更多文章