jmeter基本组成原件介绍
参考地址:https://wenku.baidu.com/view/d4986ca2aaea998fcc220ec1.html
从性能工具的原理划分:
Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分:
(1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。
(2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。
(3)资源生成器:用于生成测试过程中服务器、负载机的资源数据。
(4)报表生成器:根据测试中霍地的数据生成报表,提供可视化的数据显示方式。
测试计划元件
Test Plan (测试计划):用来描述一个 性能测试,包含与本次性能测试所有相关的功能。也就说本的性能测试的所有内容是于基于一个计划的。
下面看一下一个计划下面都有哪些主要的功能模块(右键单击“测试计划”弹出菜单)。
Threads (Users) 线程用户
虽然有三个添加线程组的选项,名字不一样,创建之后,其界面是完全一样的。
1) 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(线程组).
这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。
(2)
测试片段(Test Fragment)
测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。
(3)
控制器
JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。
1)取样器(Sampler)
取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler 如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一种不同类型的
sampler 可以根据设置的参数向服务器发出不同类型的请求。
2)逻辑控制器(Logic Controller)
逻辑控制器,包括两类无件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有如果(If)控制器、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的,如
事务控制器、吞吐量控制器。