Jmeter各种元件,打开Jmeter页面:包括测试计划+工作台
一、测试计划元件
1、基本组件
1.Test Plan(测试计划)
用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就是说本地性能测试的所有内容是基于一个计划的。
右键单击“测试计划”弹出菜单:
注意:“函数测试模式”复选框,如果被选择,它会使Jmeter记录来自服务器返回的每个取样的数据。如果你在测试监听器中选择一个文件,这个数据将被写入文件。如果你尝试一个较小的测试来保证Jmeter配置正确并且你的服务器正在返回期望的结果,这是很有用的。这样做的后果就是这个文件会快速的增大,并且Jmeter的效率会影响。如果不记录数据到文件,这个选项就没有不同了。
1.Threads (Users)线程 用户
2.1 setUp thread Group
一种特殊类型的ThreadGroup,可用于执行预测试操作,类似于lr的init。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。
2.2 terDown Thread Group
一种特殊类型的ThreadGroup,可用于执行测试后动作,类似于lr的end。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组
2.3 thread group(线程组)
这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在执行测试过程中是不会发生改变的。
线程数: Ramp-Up Period单位是秒,默认时间是1秒。它指定了启动所有线程所花费的时间,比如,当前的设定表示“在5秒内启动5个线程,每个线程的时间间隔时间是1秒”。如果你需要Jmeter立即启动所有线程,将此设定为0即可。
循环次数:表示每个线程执行几次。
3.测试片段(Test Frangment)
测试片段元素是控制器上的一个特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不容,因为它不被执行,除非它是一个模块控制器或者被控制器所引引用时才会被执行。
4.控制器
Jmeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些元件元件驱动处理一个测试
4.1取样器(Sampler)
取样器是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,Jmeter原生支持多种不同的sampler,如HTTP Request Sampler、FTP Request Sampler、TCP Request Sampler、JDBC Request Sampler等,每一种不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。
在Jmeter的所有Sampler中,Java Request Sampler与BeanShell Requst Sampler是两种特殊的可定制的Sampler.
4.2逻辑控制器(Logic Controller)
逻辑控制器,包括两类元件,一类是用于控制test plan中sampler节点发送请求的逻辑顺序的控制器,常用的有 如果(if)控制器,switch controllor、runtime controllor、循环控制器等。另一类是用来组织可控制sampler节点的,如 事务控制器,吞吐量控制器
5.监听器(Lisenner)
这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。同时也支持扩展,其中图形结果、查看结果树、聚合报告、用表格查看结果都是我们经常用到的元件。
2、其他组件
1.配置元件(Config Element)
配置元件(Config Element)用于提供静态数据配置支持。CSV Data Set config可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和TCP Request Sampler等类型的配制元件则可以修改Sampler的默认数据。
例如,HTTP Cookie Manager可以用于对HTTP Request Sampler的cookie进行管理
2.定时器(Timer)
定时器Timer用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段,类似于LoadRunner里面的“思考时间”。Jmeter定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。
Synchronzing Timer使用:
1、Number of Simultaneous Users to Group by:
每次释放的线程数量。如果设置为0,等同于设置为线程组中的线程数量。
2、Timeout in milliseconds:
如果设置为0,Timer将会等待线程数达到了“Number of Simultaneous Users to Group by”中设置的值才释放。如果大于0,那么如果超过Timeout in milliiseconds中设置的最大等待时间(毫秒为单位)后还没达到“Number of Simultaeous Users to Group”设置的值,Timer将不再等待,释放已达到的线程。默认为0;
注意:
如果设置Timeout in milliseconds为0,且线程数量无法达到"Number of Simultaneous Users to Group by"中设置的值,那么Test将无限等待,除非手动终止。
3.前置处理器(Per Processors)
前置处理器用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如:HTTP URL重写修复符则可以实现URL重写,当URL中有sessionID一类的session信息时,可以通过处理器填充发出的请求的实际的sessionID。
4.后置处理器(Post Processors)
后置处理器是用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似于LoadRunner测试工具中的关联概念)。例如,XPath Extractor则可以用于提取响应数据中通过给定Xpath值获得的数据;正则表达式提取器,则可以提取相应数据中通过正则表达式获得的数据。
5.断言(Assertions)
断言用于检查测试中得到的应用数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互与预期保持一致。
一、工作台
在测试中我们可能需要暂时更改一些组件,可以把需要更改的组件保存在工作台中,测试完成后再恢复,但是切记:不能退出jmeter,一旦退出jmeter,工作台中的内容就会消失。