Jmeter(三) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程) (3)

采样器也可以翻译成取样器;用来模拟用户的操作,向服务器(被测系统)发出Http请求、WebService(SOAP/XML-RPC Request)请求或者Java请求等。我们可以把Http请求元件看成是一个没有界面的浏览器,它可以发送Http请求,接收服务器的响应数据。采样器(Sampler)是测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler 。如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、JDBC Request Sampler 等。高版本的jmeter支持更丰富的Sampler。
采样器的添加路径:【测试计划】-【线程组】-【采样器】。
采样器告诉JMeter将请求发送到服务器并等待响应。它们按照它们在树中出现的顺序进行处理。控制器可用于修改采样器的重复次数。
JMeter采样器包括:
FTP请求
HTTP请求(也可用于SOAP或REST Web服务)
JDBC请求
Java对象请求
JMS请求
JUnit测试请求
LDAP要求
邮件要求
操作系统进程请求
TCP请求
每个采样器都有几个可以设置的属性。您可以通过向测试计划中添加一个或多个配置元素来进一步自定义采样器。
如果要将相同类型的多个请求(例如HTTP请求)发送到同一服务器,请考虑使用默认配置元素。每个控制器都有一个或多个Defaults元素(请参见下文)。
切记在测试计划中添加一个侦听器,以查看和/或将请求结果存储到磁盘。
如果您有兴趣让JMeter对请求的响应执行基本验证,请将Assertion添加到采样器。例如,在对Web应用程序进行压力测试时,服务器可能返回成功的“ HTTP响应”代码,但是页面上可能有错误或缺少部分。您可以添加断言来检查某些HTML标记,常见错误字符串等。JMeter允许您使用正则表达式创建这些断言。

3.6逻辑控制器(Logic Controllers)

逻辑控制器使您可以自定义JMeter用于决定何时发送请求的逻辑。逻辑控制器可以更改来自其子元素的请求的顺序。他们可以自己修改请求,使JMeter重复请求,等等。
逻辑控制器器的添加路径:【测试计划】-【线程组】-【逻辑控制器】。
要了解逻辑控制器对测试计划的影响,请看一下以下测试树:

Jmeter(三) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程)

Test Plan

Thread Group

Once Only Controller

Login Request (an HTTP Request)

Load Search Page (HTTP Sampler)

Interleave Controller

Search "A" (HTTP Sampler)

Search "B" (HTTP Sampler)

HTTP default request (Configuration Element)

HTTP default request (Configuration Element)

Cookie Manager (Configuration Element)

此测试的第一件事是,登录请求将仅在第一次执行。随后的迭代将跳过它。这是由于“ Once Only Controller”的作用。
登录后,下一个Sampler将加载搜索页面(我们可以想象一个测试场景:用户登录到Web应用程序,然后转到搜索页面进行搜索)。这只是一个简单的请求,不会通过任何逻辑控制器进行过滤。
加载搜索页面后,我们要进行搜索。实际上,我们要进行两种不同的搜索。但是,我们希望在每次搜索之间重新加载搜索页面本身。我们可以通过具有4个简单的HTTP请求元素(加载搜索,搜索“ A”,加载搜索,搜索“ B”)来实现。相反,我们使用“Interleave Controller”,该控制器每次通过测试都会传递一个子请求。它保持子元素的顺序(即,它不会随机传递,而是“记住”其位置)。交叉处理2个子请求可能会过多,但很容易会有8个或20个子请求。
注意HTTP请求默认值属于Interleave Controller。想象一下,“搜索A”和“搜索B”共享相同的PATH信息(HTTP请求规范包括域,端口,方法,协议,路径和参数以及其他可选项)。这很有道理-都是搜索请求,都命中了相同的后端搜索引擎(例如servlet或cgi-script)。与其在PATH字段中为两个HTTP Samplers配置相同的信息,不如将这些信息抽象到单个Configuration Element中。当Interleave Controller“传递”来自“搜索A”或“搜索B”的请求时,它将使用HTTP default request配置元件中的值填充空白。因此,对于这些请求,我们将PATH字段留空,并将该信息放入配置元素。在这种情况下,这充其量是次要的好处,但可以证明其功能。
树中的下一个元素是另一个HTTP default request,这次已添加到线程组本身。线程组具有内置的逻辑控制器,因此,它完全如上所述使用此配置元件。它填补了所有通过的请求的空白。因此在Web测试中,将所有HTTP Sampler元件中的DOMAIN字段保留为空白,然后将该信息放入HTTP默认请求元素(添加到线程组中)非常有用。这样,您只需更改测试计划中的一个字段即可在另一台服务器上测试应用程序。否则,您将必须编辑每个Sampler。
最后一个元件是HTTP Cookie ManagerCookie Manager应添加到所有Web测试中-否则JMeter将忽略cookie。通过在线程组级别添加它,我们确保所有HTTP请求将共享相同的cookie。
逻辑控制器可以组合使用以获得各种结果。请参阅内置逻辑控制器列表。

3.7测试片段(Test Fragments)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgdyxf.html