Jmeter基础篇2-组件基本介绍
2.1 测试计划
测试计划在启动Jmeter时即被展示,所有Jmeter的其他功能都基于测试计划或其子组件进行。在测试计划中,你可以为你的测试计划命名,设置测试计划下各个线程组的运行方式(并行还是串行),配置一些提供给测试计划共用的变量与外部引用jar包。
2.2 线程组
线程组元素是任何测试计划的起点。所有控制器和采样器必须在线程组下。其他元素(例如,监听器)可以直接放在测试计划下,在这种情况下,它们将应用于所有线程组。顾名思义,线程组元素控制JMeter将用于执行测试的线程数(虚拟用户数)、线程启动时间、循环次数与执行时长等。
2.3 控制器
JMeter有两种类型的控制器:采样器和逻辑控制器。这些控制器驱动测试的进行。
2.3.1 取样器/采样器
取样器告诉JMeter将请求发送到服务器并等待响应。按照它们在树中出现的顺序进行处理。
JMeter取样器包括:
2.3.2 逻辑控制器
逻辑控制器用于自定义JMeter确定何时发送请求的逻辑。逻辑控制器可以更改来自其子元素的请请求的顺序。他们可以自己修改请请求,使JMeter重复请请求,等等。
Jmeter逻辑控制器包括:
2.4 监听器
监听器提供对JMeter运行时JMeter收集的有关测试结果的查看。“查看结果树”监听器显示采样器请请求和响应的详细信息,并可以显示响应的基本HTML和XML表示形式。其他监听器提供摘要或聚合信息。
此外,监听器可以将数据定向到文件以供以后使用。JMeter中的每个监听器都提供一个字段来指示要将数据存储到的文件。还有一个“配置”按钮,可用于选择要保存的字段以及使用CSV还是XML格式。
所有监听器都保存相同的数据,唯一的区别在于数据在屏幕上的显示方式,所以如果存在多个监听器时,通常只需要保存一份数据即可。
可以在测试中的任何位置(包括直接在测试计划下)添加监听器。他们将仅从其级别或以下级别的元素收集数据。
JMeter附带有多个监听器。
2.5 定时器
默认情况下,JMeter线程按顺序执行取样器而不会暂停。我们可以通过将可用计时器之一添加到线程组来指定延迟。如果不添加延迟,JMeter可能会在很短的时间内发出太多请求,从而使服务器不堪重负。
计时器会导致JMeter 在其范围内的每个取样器执行之前延迟一定的时间。
如果选择在一个线程组中添加多个计时器,JMeter将使用计时器的总和,并在执行该计时器所适用的采样器之前暂停该时间。可以将计时器作为采样器或控制器的子级添加,以限制将它们应用到指定的采样器。
2.6 断言
使用断言,可以进行判断测试是否返回期望的结果。
例如,可以断言对查询的响应将包含一些特定的文本。指定的文本可以是正则表达式,并且可以指示响应将包含文本,或者应与整个响应匹配。
可以将断言添加到任何采样器。例如,可以向HTTP请请求添加断言,以检查文本“ </ HTML> ”。然后,JMeter将检查HTTP响应中是否存在该文本。如果JMeter找不到文本,请求将被标记为失败。
断言适用于其范围内的所有采样器。要将声明限制为单个采样器,将该声明添加为采样器的子级。
要查看断言结果,将“断言监听器”添加到线程组。失败的断言还将显示在查看结果树中并标记为红色,并将在“汇总”和“摘要”报告计入错误%age。
2.7 配置元件
配置元件与采样器紧密配合。尽管它不发送请求,但它可以添加或修改请求。
配置元件只能从放置元素的树枝内部访问。例如,如果将HTTP Cookie Manager放置在Simple Logic Controller内,则放置在Simple Logic Controller内的HTTP Request Controller只能访问Cookie Manager(见图1)。Cookie请求器可用于HTTP请求“网页1”和“网页2”,但不能访问“网页3”。
2.8 前置处理器
前置处理器在发出“采样器请求”之前执行一些操作。如果将前置处理器附加到Sampler元素,则它将在该Sampler元素运行之前执行。前置处理器最常用于在样品请求运行之前修改它的设置,或更新不是从响应文本中提取的变量。
2.9 后置处理器
发出采样器请求后,后置处理器将执行某些操作。如果将后置处理器附加到Sampler元素,则它将在该sampler元素运行之后立即执行。后置处理器最常用于处理响应数据,经常从中提取需要的值。
2.10 组件执行优先级
同一级别内:配置元素 >预处理器 >计时器 > 取样器 >后处理器(除非SampleResult为null) >断言(除非SampleResult为null) >监听器(除非SampleResult为null)