• 0
  • 0
分享

接上文,下面继续介绍Jmeter的测试元件。


3. 控制器

 

        JMeter有两种类型的控制器:取样器和逻辑控制器。

 

        取样器指示JMeter向一个服务器发送请求。例如,如果你想让JMeter发送HTTP请求,那么添加一个HTTP请求器。你可以向一个取样器中添加一个或多个配置元件来定制请求。

        逻辑控制器允许你定制JMeter何时发送请求。例如,你可以添加交替(Interleave)逻辑控制器来在两个HTTP请求取样器之间轮流。

 

3.1 取样器


        取样器告诉JMeter向服务器发送请求并等待响应。它们按照它们在树中出现的顺序进行处理。控制器可用于修改采样器的重复次数。


JMeter采样器包括:


  • FTP请求

  • HTTP请求(也可用于SOAP或REST Web服务)

  • JDBC请求

  • Java对象请求

  • JMS请求

  • JUnit测试请求

  • LDAP请求

  • 邮件请求

  • OS进程请求

  • TCP请求

  • ...


        不仅仅限于上面列出的请求,还有其他请求,就不一一列出来了,因为你也可以自己定义取样器。


        每个取样器有几个可以设置的属性。你可以向取样器添加一个或多个配置元件来进一步的控制取样器。除此之外,JMeter以你向树中添加取样器的顺序发送请求。


        如果你想向一个服务器发送同种类型(例如:HTTP请求)的多个请求。考虑使用缺省配置元件(Defaults Configuration Element)。每个控制器有一个或多个缺省元件。


        记得向线程组添加一个监听器来查看和/或存储请求结果到磁盘。

 

        如果想让JMeter在请求的回复上做基本的验证,添加一个断言到请求控制器。例如,在对WEB应用做压力测试时,服务器会返回一个成功的“HTTP回复”代码,但页面可能会有错误或缺少内容。你可以添加断言来检查某些特定的HTML标签,一般的错误字符串,等等。JMeter允许你使用正则表达式创建这些断言。


3.2 逻辑控制器

        逻辑控制器允许你定制JMeter何时发送请求。逻辑控制器可能包话如下的子元件:取样器(请求),配置元件,其它的逻辑控制器。逻辑控制器能够更改它的子元件中的请求的顺序。他们可以自己修改请求,使JMeter重复请求,等等。


        要理解逻辑控制器对测试计划的影响,假设如下的测试树:

 jmeter元件介绍三.PNG

 


        这个测试首先是执行登录请求,它在整个测试过程中只执行一次。后面的反复执行将跳过它。这是由于使用了仅一次控制器。


        登录后,取样器接着会加载搜索页(想像一个用户登录进去,然后打开搜索页来搜索信息这样一个WEB应用。)这只是一个简单的取样器请求,没有用任何逻辑控制器过滤。

 

        加载完搜索页后,我们想搜索一下,事实上,我们想做两种不同的搜索。然而,我们想在每个搜索之间重新加载搜索页面。我们可以通过使用四个简单的HTTP请求元件(加载搜索页面,搜索‘A’,加载搜索页面,搜索‘B’)。或者使用交替控制器,它一次传递一个子请求到这个测试。按子元件的排列顺序。交替2个子请求可能有点大材小用,但是如果有8或是20个子请求,那么它使用它将很简单。

 

        注意HTTP默认请求是在交替控制器里。设想一下,“搜索A”和“搜索B”共享相同的目录信息(一个规范的HTTP请求包括域,端口,方法,协议,路径,参数和一些其它可选选项)这是有道理的-两个搜索请求,都使用相同的后台搜索引擎(我们可以暂说它是一个servlet或是cgi脚本)。胜于配置两个使用相同路经信息的HTTP取样器,我们能够把信息提取到单独的一个配置元件。当交替控制器把请求从“搜索A”传递到“搜索B”时,它会把HTTP默认请求配置元件值填在空白值里。因此我们把那些请求的路径信息置空,把那些信息放在配置元件里。在这个例子里,只利用一点它的优势,以后还来会再论述它。

 

        这个树的下一个元件是另一个HTTP默认请求,这次单独把它放在线程组里。线程组有一个内置的逻辑控制器,因些,它可以向上面说的那样,精确的使用配置元件。它会填上空白处来传递任何一个请求。它在网站测试时,置空你所有的HTTP取样器的域值,把那些信息放在HTTP默认请求元件里,然后加到线程组时特别有用。通过这样做,你可以在不同的服务器上通过简单的改变你的测试计划里的一个值来测试你的应用。否则,你不得不在每个取样器,每个值修改一次。

 

        最后一个元件是HTTP Cookie管理器。你应该在所有的网站测试里添加一个Cookie管理器,否则JMeter会忽略Cookie。通过添加它到线程组这一层,我们可以确保所有的HTTP请求可以共享相同的Cookie。

 

        你也可以添加多个逻辑控制器来达到各种不同的结果。可以去看看内置逻辑控制列表。如果想看的话,这个网址里面有详细介绍https://jmeter.apache.org/usermanual/component_reference.html#logic_controllers(官网英文)。


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 提纲:接口测试定义;接口测试的适用范围;接口测试的划分;接口测试小结。一、什么是接口测试主要用于检测外部系统与系统之间内部各个子系统之间的交互点,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口可分为内部接口(开发人员)和外部接口(如组件接口和web服务器):系统与系统之间的调用;例如支付宝提供接口给淘宝调用,一个业务的修改可能会影响其他业务的使用,这是需要做接口测试;上层服务对下层服务的调用;例如Service层会调用DAO层的接口,而应用层会调用服务层提供的接口,比如注册用户时,会调用用户查询的服务,查询用户是否已经注册;我们所要做的接口测试,先了解基...
            0 0 1000
            分享
          • 1.3.域名系统1.3.1.域名系统工作原理DNS解析过程是递归查询的,具体过程如下:用户要访问域名www.example.com时,先查看本机hosts是否有记录或者本机是否有DNS缓存,如果有,直接返回结果,否则向递归服务器查询该域名的IP地址递归缓存为空时,首先向根服务器查询com顶级域的IP地址根服务器告知递归服务器com顶级域名服务器的IP地址递归向com顶级域名服务器查询负责example.com的权威服务器的IPcom顶级域名服务器返回相应的IP地址递归向example.com的权威服务器查询www.example.com的地址记录权威服务器告知www.example.com的地...
            0 0 1256
            分享
          •   Faker主要用来生成开发测试过程中的的模拟真实数据。JMeter主要用于测试,在测试的过程中造数据是一个很头疼的问题。今天笔者就来介绍一下如何将Faker和JMeter进行组合来实现。模拟数据创建,通过Faker创建的模拟数据更加真实。  1. 环境准备  ·JMeter, 版本:5.4.3  · javafaker,版本:1.0.2  下载javafaker的jar包,然后把jar包放到JMeter的lib目录中。  这里就已经准备好了。接下来就是启动JMeter服务。  Tips: 由于javafaker还有依赖snakeyaml,所以这个jar包也需要引入。  2. JM...
            0 0 1724
            分享
          • 近日界面新闻了解到,丰巢智能柜小程序已专门辟出“生活服务”专区,为丰巢进军的洗衣业务打起了广告。据丰巢方面透露,目前这一服务已经从深圳拓展至全国市场,但仍处于摸索阶段。快递柜作为物流最后一公里的服务形态之一,正与驿站产生竞争。但无论是快递柜还是驿站,目前都面临服务业态相对单一、投入成本较大的问题,盈利情况并不理想。根据丰巢智能柜小程序的信息,“丰巢洗护”服务内容包括衣物、鞋靴的通用洗护,以及干洗、水洗等专业分类洗护。这一定程度上增加了快递柜使用的场景。在使用“丰巢洗护”这一功能时,用户可以通过丰巢小程序下单,选择通过“投丰巢柜”和“上门取件”任一完成配送,之后等待衣物返还即可。其中“投丰巢柜”...
            0 0 850
            分享
          • webdriver概述是一个非常好用的用来进行复杂重复的web自动化测试的工具,主要是,它可以用于我们进行爬虫。WebDriver(Selenium 2),它的主要新功能是集成了 Selenium 1.0 以及 WebDriver。WebDriver(Selenium 2) 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API。安装chrome webdriver(这是谷歌浏览器的webdriver安装),安装webdriver必须要和对应浏览器的版本相匹配才可以使用。安装之前,先查看浏览器的版本,我这里用谷歌浏览器。1. 查看自己的chrome谷歌浏...
            12 12 3078
            分享
      • 51testing软件测试圈微信