Test Plan Elements
JMeter测试计划包括下面讨论的测试元素。 测试计划包括至少一个线程组。 在每个线程组中,我们可以放置一个或多个其他元素的组合 - 采样器,逻辑控制器,配置元素,监听器和定时器。 每个采样器前面可以有一个或多个预处理器元素,后跟后处理器元素和/或断言元素。 让我们详细了解这些要素中的每一个 -
线程组
线程组元素是测试计划的起点。 顾名思义,线程组元素控制JMeter在测试期间将使用的线程数。 我们还可以通过线程组控制以下内容 -
- 设置线程数
- 设置加速时间
- 设置测试迭代次数
线程组控制面板看起来像这样 -
线程组面板包含以下组件 -
Action to be taken after a Sampler error - 如果在测试执行期间发生任何错误,您可以让测试 -
Continue测试中的下一个元素
Stop Thread以停止当前线程。
完全Stop Test ,以防您在继续运行之前检查错误。
Number of Threads - 模拟服务器应用程序的用户数或连接数。
Ramp-Up Period定义JMeter使所有线程运行所需的时间。
Loop Count - 定义执行测试的次数。
Scheduler checkbox - 选择后,“计划程序配置”部分将显示在控制面板的底部。
Scheduler Configuration - 您可以配置运行测试的开始和结束时间。
控制器(Controllers)
JMeter有两种类型的控制器 - Samplers和Logic Controllers 。
Samplers
采样器允许JMeter将特定类型的请求发送到服务器。 它们模拟来自目标服务器的页面的用户请求。 例如,如果需要在HTTP服务上执行POST,GET或DELETE,则可以添加HTTP请求采样器。
一些有用的采样器是 -
- HTTP请求
- FTP请求
- JDBC请求
- Java请求
- SOAP/XML请求
- RPC请求
以下屏幕截图显示了HTTP请求采样器控制面板 -
逻辑控制器
逻辑控制器允许您控制线程中采样器的处理顺序。 逻辑控制器可以更改来自其任何子元素的请求的顺序。 一些示例是 - ForEach Controller,While Controller,Loop Controller,IF Controller,Run Time Controller,Interleave Controller,Throughput Controller和Run Once Controller。
以下屏幕截图显示了一个Loop Controller控制面板 -
以下列表包含JMeter提供的所有逻辑控制器 -
- 简单控制器
- 循环控制器
- 一次只有控制器
- 交错控制器
- 随机控制器
- 随机顺序控制器
- 吞吐量控制器
- 运行时控制器
- 如果控制器
- 而控制器
- 开关控制器
- ForEach Controller
- 模块控制器
- 包括控制器
- 交易控制器
- 录音控制器
测试片段
Test Fragment是一种特殊类型的元素,与Thread Group元素位于同一级别。 它与Thread Group的区别在于它不会被执行,除非它被Module Controller或Include_Controller引用。 此元素纯粹用于在测试计划中重复使用代码。
Listeners
监听器允许您以某些日志文件中的表格,图形,树或简单文本的形式查看采样器的结果。 当JMeter的采样器组件被执行时,它们提供对JMeter收集的有关测试用例的数据的可视访问。
可以在测试的任何地方添加监听器,包括直接在测试计划下。 他们只会从等级或低于其等级的元素收集数据。 以下列表包括JMeter提供的所有监听器 -
- 示例结果保存配置
- Graph Full Results
- Graph Results
- Spline Visualizer
- 断言结果
- 查看结果树
- 汇总报告
- 查看表格中的结果
- 简单的数据编写者
- 监控结果
- 分布图(alpha)
- 聚合图
- Mailer Visualizer
- BeanShell监听器
- 总结报告
Timers
默认情况下,JMeter线程发送请求而不会在每个采样器之间暂停。 这可能不是你想要的。 您可以添加一个计时器元素,该元素允许您定义在每个请求之间等待的句点。
以下列表显示了JMeter提供的所有计时器 -
- 恒定时器
- 高斯随机定时器
- 统一随机定时器
- Constant Throughput Timer
- 同步定时器
- JSR223 Time
- BeanShell时间
- BSF Time
- Poisson Random Time
以下屏幕截图显示了一个Constant Timer控制面板 -
断言(Assertions)
断言允许您对使用采样器发出的请求的响应包含一些验证测试。 使用断言可以证明您的应用程序正在返回正确的数据。 当断言失败时,JMeter会突出显示。
以下列表包含JMeter提供的所有断言 -
- Beanshell断言
- BSF断言
- 比较断言
- JSR223断言
- 响应断言
- 持续时间断言
- 大小断言
- XML断言
- BeanShell断言
- MD5Hex断言
- HTML断言
- XPath断言
- XML Schema断言
以下屏幕截图显示了响应断言控制面板 -
配置元素
配置元素允许您创建采样器使用的默认值和变量。 它们用于添加或修改采样器发出的请求。
它们在它们所属范围的开始处执行,在位于相同范围内的任何采样器之前执行。 因此,只能从放置它的分支内部访问配置元素。
以下列表包含JMeter提供的所有配置元素 -
- Counter
- CSV数据集配置
- FTP请求默认值
- HTTP授权管理器
- HTTP缓存管理器
- HTTP Cookie管理器
- HTTP代理服务器
- HTTP请求默认值
- HTTP标头管理器
- Java请求默认值
- 密钥库配置
- JDBC连接配置
- 登录配置元素
- LDAP请求默认值
- LDAP扩展请求默认值
- TCP采样器配置
- 用户定义的变量
- 简单的配置元素
- 随机变量
Pre-processor Elements
预处理器元素就是在采样器执行之前运行的东西。 它们通常用于在运行之前修改样本请求的设置,或者更新未从响应文本中提取的变量。
以下列表包含JMeter提供的所有预处理器元素 -
- HTML链接解析器
- HTTP URL重写修饰符
- HTTP用户参数修饰符
- 用户参数
- JDBC预处理器
- JSR223预处理器
- RegEx用户参数
- BeanShell预处理器
- BSF预处理器
Post-processor Elements
后处理器在采样器完成执行后执行。 此元素通常用于处理响应数据,例如,检索特定值以供以后使用。
以下列表包含JMeter提供的所有后处理器元素 -
- Regular Expression Extractor
- XPath Extractor
- 结果状态操作处理程序
- JSR223 PostProcessor
- JDBC PostProcessor
- BSF PostProcessor
- CSS/JQuery Extractor
- BeanShell PostProcessor
- 调试PostProcessor
测试元素的执行顺序
以下是测试计划元素的执行顺序 -
- 配置元素
- Pre-Processors
- Timers
- Sampler
- 后处理器(除非SampleResult为null)
- 断言(除非SampleResult为null)
- 监听器(除非SampleResult为null)