JMeter 测试计划元素
JMeter 测试计划包括以下测试元素。
测试计划包括至少要有一个线程组。在每个线程组中,我们可以包含一个或多个其他元素, 例如: 取样器(Sampler),逻辑控制器,配置元件,监听器和定时器。 每个取样器(Sampler)被放在一个或多个预处理器元件之后,其后是后处理器元件和 / 或断言元件。让我们详细看看每个元素:
线程组
线程组元素是测试计划的起点。 顾名思义,线程组元素控制 JMeter 在测试期间将使用的线程数。 我们还可以通过线程组控制以下内容:
- 设置线程的数量
- 设置 ramp-up time
- 设置测试迭代次数
线程组控制面板如下:
Control Panel
线程组面板包含以下组件:
-
取样器(Sampler)出错后采取的措施 - 如果在测试执行期间发生错误,您可以采取以下措施:
- 继续执行测试中的下一个元素。
- 停止当前的线程。
- 完全停止测试,便于你在继续运行前检查出现的错误。
- 线程数 - 模拟到服务器应用程序的用户数或连接数。
- Ramp-Up Period - 定义 JMeter 中所有线程运行多长时间。
- 循环控制器 - 定义执行测试的次数。
- 调度器 - 调度器选择后,调度器配置部分将变为可编辑状态。
- 计划程序配置 - 您可以配置运行测试的开始和结束时间。
控制器
JMeter 有两种类型的控制器 - 取样器(Samplers)和逻辑控制器。
取样器(Samplers)
取样器(Samplers)允许 JMeter 向服务器发送特定类型的请求。 它们模拟来自目标服务器的页面的用户请求。例如,如果需要对 HTTP 服务执行 POST,GET 或 DELETE,则可以添加 HTTP 请求采样器。
以下是常用的取样器(Samplers):
- HTTP Request
- FTP Request
- JDBC Request
- Java Request
- SOAP/XML-RPC Request
以下是 HTTP Request 的屏幕截图:
HTTP Request
逻辑控制器
逻辑控制器允许您控制线程中取样器(Sampler)的处理顺序。逻辑控制器可以改变来自任何子元素的请求顺序。 例如:ForEach 控制器,While Controller,循环控制器,如果(If)控制器,Runtime Controller,交替控制器,吞吐量控制器和仅一次控制器。
下面是循环控制器的屏幕截图:
Loop Controller
以下是由 JMeter 提供的所有逻辑控制器的列表:
- Critical Section Controller
- ForEach 控制器
- Include Controller
- Runtime Controller
- Switch Controller
- While Controller
- 事务控制器
- 交替控制器
- 仅一次控制器
- 吞吐量控制器
- 如果(if)控制器
- 录制控制器
- 循环控制器
- 模块控制器
- 简单控制器
- 随机控制器
- 随机顺序控制器
Test Fragment
Test Fragment 是放置在与线程组元素相同级别的特殊类型的元素。它与线组的区别在于它不会被执行,除非它被模块控制器或 Include Controller 引用。此元素纯粹用于在测试计划中的代码复用。
监听器
监听器允许您以表格,图表,树型或某些日志型文本的形式查看取样器(Sampler)的结果。当 JMeter 的取样器(Sampler)组件被执行时,它们提供对 JMeter 收集的关于测试用例的数据的可视访问。
可以在测试中的任何地方添加监听器,包括直接在测试计划下。他们将只收集来自或低于其水平的元素的数据。以下列表是 JMeter 提供的所有监听器:
- Aggregate Graph
- Backend Listener
- BeanShell Listener
- BSF Listener
- Comparison Assertion Visualizer
- JSR223 Listener
- Response Time Graph
- Simple Date Writer
- Summary Report
- 保存响应到文件
- 图形结果
- 察看结果树
- 断言结果
- 生成概要结果
- 用表格察看结果
- 监视器结果
- 聚合报告
- 邮件观察仪
定时器
默认情况下,JMeter 线程中每个取样器(Sampler)发送请求不会等待。这可能不是你想要的。您可以添加一个计时器元素,允许您定义在每个请求之间等待的时间段。
以下列表是 JMeter 提供的所有计时器:
- BeanShell Timer
- BSF Timer
- Constant Throughput Timer
- JSR223 Timer
- Poisson Random Timer
- Uniform Random Timer
- 固定定时器
- 高斯随机定时器
以下是 Constant Throughput Timer 的屏幕截图:
Constant Throughput Timer
断言
断言允许您对使用取样器(Sampler)请求的响应信息时行一些验证测试。使用断言,您可以证明您的应用程序返回的数据是否正确。JMeter 在断言失败时突出(红色)显示。
以下是 JMeter 提供的所有断言:
- BeanShell 断言
- BSF Assertion
- Compare Assertion
- html Assertion
- JSR223 Assertion
- MD5Hex 断言
- Size Assertion
- SMIME Assertion
- XML Schema Assertion
- XML 断言
- XPath Assertion
- 响应断言
- 断言持续时间
配置元件
配置元件允许您创建一个由取样器(Sampler)使用的默认值和变量。它们用于添加或修改取样器(Sampler)发出的请求。
配置元件作为一个分支的一部分,在该部分所有取样器(Sampler)之前执行。因此,配置元件只能在这个分支内部访问。
以下是 JMeter 提供的所有配置元件:
- CSV Date Set Config
- DNS Cache Manager
- FTP 请求缺省值
- HTTP Cache Manager
- HTTP Cookie 管理器
- HTTP 信息头管理器
- HTTP 授权管理器
- HTTP 请求管理器
- Java 请求管理器
- JDBC Connection Configuration
- Keystone Configuration
- LDAP Extended Request Defaults
- LDAP 请求默认值
- Random Variable
- TCP 取样器配置
- 用户定义的变量
- 登陆配置元件 / 素
- 简单配置元件
- 计数器
前置处理器
前置处理器是在取样器(Sampler)执行之前运行的东西。它们通常用于在运行之前修改 Sample 请求的设置,或者更新从响应文本中提取的变量。
以下是 JMeter 提供的所有前置处理器:
- BeanShell PreProcessor
- BSF PreProcessor
- HTML 链接解析器
- HTTP URL 重写修饰符
- JDBC PreProcessor
- JSR223 PreProcessor
- RegEx User Parameters
- Sample Timeout
- 用户参数
后置处理器
后置处理器在取样器(Sampler)完成其执行后执行。此元素最常用于处理响应数据,例如,检索特定值以供将来使用。
以下是 JMeter 提供的所有后置处理器:
- BeanShell PostProcessor
- BSF PostProcessor
- CSS/JQuery Extractor
- Debug PostProcessor
- JDBC PostProcessor
- JSON Path PostProcessor
- JSR223 PostProcessor
- Result Status Action Handler
- XPath Extractor
- 正则表达式提取器
测试元素的执行顺序
以下是测试计划元素的执行顺序:
- 配置元件
- 前置处理器
- 定时器
- 取样器(Sampler)
- 后置处理器 (除非 Sample 结果为空)
- 断言 (除非 Sample 结果为空)
- 监听器 (除非 Sample 结果为空)
来源: http://www.jianshu.com/p/faf9e32d61cf