1.测试计划
测试计划(Test Plan)是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器。
2.Threads(Users)-线程组
每个测试需求的必备组件,是用来模拟用户并发的组件,JMeter的每个任务都是用线程来处理的,线程组界面如下所示:
PS:Threads(Users)下还有两个线程组:setUp Thread Group(线程组运行前执行,主要用于初始化操作,类似于JUnit/TestNG的setUp)、tearDown Thread Group(线程组运行后执行,主要用于数据清理,类似于JUnit/TestNG的tearDown)
3.Sampler(取样器)
向服务器发送请求,记录响应信息,记录响应时间的最小单元,常用Debug Sampler,FTP,HTTP和JDBC Request。
4.逻辑控制器
包括两类原件
一类是控制sampler节点发送请求逻辑顺序的控制器(if控制器,switch Controller, Runtime Controller,循环控制器等);
另一类是控制sampler节点的(事物控制器,吞吐量控制器)。
5.配置元件
用于提供对静态数据配置的支持,供取样器获取所需要的各种配置信息,它不向服务器发送任何的请求,配置元件仅对其所在的测试线程组分支有效。
PS:在执行顺序方面,配置元件"用户定义的变量"无论它处于测试树的哪个位置,总是在测试的初始阶段执行。
6.前置处理器与后置处理器
前置处理器(Pre Processors)和后置处理器(Post Processors)负责在发起请求之前和返回请求数据之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。
7.监听器
是用来对测试结果数据进行处理和可视化展示的一些列元件。
监听器主要用于收集整理测试结果,并将测试结果数据进行处理并展示出来,可以指定格式生成XML、CSV等形式的文件,查看结果树,用表格查看结果,图形结果,聚合报告等。
8.断言
断言(Assertions)可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。
9.关于执行顺序
在同一作用域名范围内(不考虑逻辑控制器),测试计划中的元件按照如下顺序执行。
(1)配置元件(config elements )
(2)前置处理器(Per-processors)
(3)定时器(timers )
(4)取样器(Sampler)
(5)后置处理器(Post-processors) (除非Sampler 得到的返回结果为空)
(6)断言(Assertions)(除非Sampler 得到的返回结果为空)
(7)监听器(Listeners)(除非Sampler 得到的返回结果为空)