本文转至http://blog.chinaunix.net/uid-26884465-id-3418212.html,个人觉得写得非常不错,适合初学者

1、线程组

程组是任何测试计划的起点,所有的逻辑控制器和采样器都必须放在线程组之下。其他的测试元件(如监听器)可以被直接放在测试计划之下,这些测试元件 对所有线程组都生效。线程组就像它的名字所描述的那样,被用来管理执行性能测试所需的JMeter线程。用户通过线程组的控制面板可以:

设置线程数量。

设置线程启动周期。

设置执行测试脚本的循环次数。

每一个JMeter线程都会完整地执行测试计划,而且它们之间是完全独立运行的。这种多线程机制被用来模拟服务器应用的并发连接。参数Ramp- Up Period告诉JMeter达到最大线程数需要多长时间。假定共有10个线程,Ramp-Up Period为100秒,那么JMeter就会在100秒内启动所有10个线程,并让它们运转起来。每一个测试线程都会在上一个线程启动10秒之后才开始 运行。假定共有30个线程,Ramp-Up Period为120秒,那么线程启动的间隔就为4秒。

Ramp-Up参数不能设定得太短,否则在测试的初始阶段会给予服务器过大的压力。Ramp-Up参数也不能设定得太长,否则就会发生第一个线程已经执行完毕,而最后一个线程还没有启动的情况(除非测试人员期望这种特殊情况发生)。

如何找到一个合适的Ramp-Up参数值?作者建议初始值可以设定为Ramp-Up=总线程数,后续再根据实际情况适当增减。

2、调度器

在调度器控制面板中,可以设定测试运行的"启动时间"和"结束时间"。测试启动后会一直等待,直到用户设定的启动时间。测试运行期间,JMeter 会在每一次循环结束后,检查是否已经达到结束时间。如果已经达到了结束时间,JMeter就会终止测试运行,否则JMeter会继续下一个测试循环。

另外,用户还可以设定"持续时间"和"启动延迟"两项参数。需要注意的是,"启动延迟"会使"启动时间"无效,而"持续时间"会使"结束时间"无效。

3、控制器

JMeter有两种类型的控制器:采样器和逻辑控制器,二者结合起来驱动了测试进程。采样器被JMeter用来向服务器发送请求。例如,当测试人员想往服务器发送一个HTTP请求时,就加入一个HTTP请求采样器。测试人员还可以通过为采样器添加配置元件来定制化请求。

用户可以使用逻辑控制器来控制JMeter的测试逻辑,比如何时发送请求。举一个例子:测试人员可以插入交替控制器来轮流发送多个请求。

1)采样器

采样器告诉JMeter发送一个请求到指定服务器,并等待服务器的请求。采样器会按照其在测试树中的顺序去执行,还可以用逻辑控制器来改变采样器运行的重复次数。

每一种采样器都有多种参数可供设置。测试人员还可以通过在测试计划中加入一个或者多个配置元件,来进一步定制化采样器。

如果测试人员打算向同一个服务器发送同一类请求,可以考虑使用默认配置元件。每一类采样器都有一个或多个对应的默认配置元件。一定记住应为测试计划添加一个监听器,以便查看和存储(存储到磁盘)请求的结果。

如果测试人员想检查服务器响应的内容,可以为对应采样器添加断言。例如,当对Web应用做压力测试时,服务器虽然成功返回了"HTTP Response"代码,但是页面上可能会有错误,或者丢失了部分页面片段。针对这种情况,测试人员可以添加断言来检查特定的HTML标签,或者常见的错 误信息等。JMeter允许在断言中使用正则表达式。

2)逻辑控制器

逻辑控制器可以帮助用户控制JMeter的测试逻辑,特别是何时发送请求。逻辑控制器可以改变其子测试元件的请求执行顺序。

4、监听器

监听器提供了对JMeter在测试期间收集到的信息的访问方法。"图形结果"监听器会将系统响应时长绘制在一张图片之中。"查看结果树"监听器会展示采样器请求和响应的细节,还能以HTML和XML格式展示系统响应的基础部分。其他监听器通过总结或者聚合方式展示信息。

另外,监听器可以将测试数据导入到文件之中,以供后续分析。所有监听器都会提供一个输入域,以便于用户指定存储测试数据的文件。监听器还会提供一个 配置按钮,用来配置存储测试数据的哪些字段,以及选用的存储格式(CSV或者XML)。读者朋友需要注意的是,所有监听器都保存同样的数据,唯一的区别是 它们如何展示数据。

监听器可以在测试的任何地方添加,包括直接放在测试计划之下。它们仅收集测试树中相同或者更低级别测试元件的数据。

5、定时器

默认情况下,JMeter线程在发送请求之间没有间歇。建议为线程组添加某种定时器,以便设定请求之间应该间隔多长时间。如果测试人员不设定这种延迟,JMeter可能会在短时间内产生大量访问请求,导致服务器被大量请求所淹没。

定时器会让作用域内的每一个采样器都在执行前等待一个固定时长。如果测试人员为线程组添加了多个定时器,那么JMeter会将这些定时器的时长叠加起来,共同影响作用域范围内的采样器。定时器可以作为采样器或者逻辑控制器的子项,目的是只影响作用域内的采样器。

要在测试计划中的某个位置添加暂停,测试人员可以使用"Test Action"采样器。

6、断言

用户可以使用断言来检查从服务器获得的响应内容。通过断言可以测试服务器返回的响应与测试人员的期望是否相符。

例如,测试人员可以断言某个查询的响应中包含特定的文字信息。测试人员可以使用Perl格式的正则表达式来描述响应中应该包含的文字,或者它应该与整个响应相符。

测试人员可以为任何采样器添加断言。例如,测试人员可以为HTTP请求添加断言,用于检查文本""。接下来JMeter就会检查该文本是否出现在HTTP响应中。如果JMeter不能找到该文本,那么它就会将请求标记为失败。

需要注意的是,断言会影响作用域内的所有采样器。如果要让断言只影响某个采样器,需要将断言作为该采样器的子项。

如果要查看断言结果,可以为线程组添加"断言结果"监听器。失败的断言,也会在"查看结果树"和"用表格查看结果"两种监听器中显示。另外,在"Summary Report"和"聚合报告"中还会以错误百分率的形式统计。

7、配置元件

配置元件与采样器紧密关联。虽然配置元件并不发送请求(除了HTTP代理服务器例外),但它可以添加或者修改请求。

配置元件仅对其所在的测试树分支有效。例如,假设测试人员在一个简单逻辑控制器中放置了一个HTTP Cookie管理器,那么该HTTP Cookie管理器只对放置在简单逻辑控制器内的其他逻辑控制器生效

另外,相比父分支的配置元件,子分支内部的配置元件优先级更高。配置元件 "用户定义的参数"会在测试的初始阶段执行(无论它处于测试树的哪个位置)。

8、前置处理器

前置处理器会在采样器发出请求之前做一些特殊操作。如果前置处理器附着在某个采样器之下,那么它只会在该采样器运行之前执行。前置处理器通常用于在采样器发出请求前修改采样器的某些设置,或者更新某些变量的值(这些变量不在服务器响应中获取值)。

9、后置处理器

后置处理器会在采样器发出请求之后做一些特殊操作。如果后置处理器附着在某个采样器之下,那么它只会在该采样器运行之后执行。后置处理器通常被用来处理服务器的响应数据,特别是服务器响应中提取数据。

最后,对于这么多的部件,JMeter执行顺序规则如下:

配置元件

前置处理器

定时器

采样器

后置处理器(除非服务器响应为空)

断言(除非服务器响应为空)

监听器(除非服务器响应为空)

只有当作用域内存在采样器时,定时器、断言、前置/后置处理器才会被执行。逻辑控制器和采样器按照在测试树中出现的顺序执行。其他测试元件会依据自 身的作用域范围来执行,另外还与测试元件所属的类型有关(归属于同一类型的测试元件,会按照它们在测试树中出现的顺序来执行)。

转载于:https://www.cnblogs.com/monvxyx/p/6432535.html

JMeter常用组件相关推荐

  1. Jmeter系列之常用组件(二)

    VOL 130 01 2020-06 今天距2021年213天 这是ITester软件测试小栈第130次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  2. 21天Jmeter打卡Day18 前置处理器_熟悉常用组件

    21天Jmeter打卡Day18 前置处理器_熟悉常用组件 https://www.jianshu.com/p/84866b2315f8 前置处理器使用场景 1.准备测试数据 2.数据加密–BeanS ...

  3. JMeter常用测试元件和组件参数化

    目录 一.JMeter常用测试元件 1.线程组 2.调度器 3.控制器 4.监听器 5.定时器 6.断言 7.配置元件 8.前置处理器 9.后置处理器 二.Jmeter组件参数化 1. 参数化是什么 ...

  4. JMETER 各组件执行顺序与作用域

    JMETER 各组件执行顺序与作用域 配置元件: 配置元件的作用主要为了初始化默认值和变量,以便后续采样器引用.相对于JAVA 语言中间定义一些常量和静态变量.配置元件作用域是最初始阶段处理,配置元件 ...

  5. JMeter 测试组件介绍 - 物联网大并发测试实战 02

    在本系列文章的上一篇中,我们介绍了开源测试工具 JMeter,并以一个简单的HTTP测试为例一窥JMeter的能力.在本篇文章中,我们将进一步介绍JMeter丰富的组件,以帮助大家构建复杂场景的测试脚 ...

  6. JQuery EasyUI的常用组件

    jQuery EasyUI 是一个基于 jQuery 的框架,集成了各种用户界面插件,该框架提供了创建网页所需的一切,帮助您轻松建立站点. 注:本次介绍的JQuery EasyUI版本为1.5版. 一 ...

  7. wdcp php5.3 pdo_mysql,WDCP常用组件(memcache、mysqli、PDO_MYSQL、mysql innodb、libmcrypt、php zip)的安装方法...

    一般来说WDCP安装之后就可以正常使用了,不过对于一些朋友来说还无法满足,现在收集了有关WDCP常用组件,比如memcache.mysqli.PDO_MYSQL.mysql innodb.libmcr ...

  8. amazeui学习笔记--css(常用组件4)--关闭按钮Close

    amazeui学习笔记--css(常用组件4)--关闭按钮Close 一.总结 1.关闭按钮基本用法:关闭按钮样式,可以结合其他不同组件使用.对 <a> 或者 <button> ...

  9. amqp协议_AMQP协议、模型及RabbitMQ常用组件

    大家好,我是小T 今天咱们来介绍RabbitMQ的消息发送的原理 ^-^ RabbitMQ作为一款消息中间件,它的核心功能主要是消息的收发.消息收发的媒介是通过网络传输来实现的. RabbitMQ最底 ...

最新文章

  1. mysql 给字段添加索引_怎么给mysql表的字段添加索引和查询索引呢
  2. 剑指offer-斐波那契数列
  3. C++中的mutable关键字
  4. android usb弹窗权限r,Android USB权限对话框永远不会出现
  5. Python 包管理工具 pip 安装 和 使用
  6. Redis的三个框架:Jedis,Redisson,Lettuce
  7. C#反射读取和设置类的属性
  8. sphinx配置文件全解析
  9. 【模板】非旋Treap
  10. SpringBoot日常游玩---当你需要在一个静态方法中使用一个带有其他@Autowried的实现类的时候怎么办
  11. Latex——论文翻译
  12. DBF文件简介(转)
  13. xp 无法关闭计算机,xp系统不能关机解决方法
  14. CSS中的BFC规范(块级格式化上下文)
  15. 最容易理解的LSM树--以示例讲解合并查找过程
  16. layui框架学习(13:辅助元素)
  17. FPGA开发工具套餐搭配推荐及软件链接(工程师们转起来)
  18. ubuntu下执行sudo命令提示:xx is not in the sudoers file. This incident will be reported.
  19. 以一举三的京东数据爬取(已经分配好各个方法,修改几行代码即可应用其他网站)并以json文件保存
  20. 杨辉三角c语言杭电,杭电 杨辉三角

热门文章

  1. DaVinci Resolve 16中文版
  2. Notepad++V6.8.1.0中文版
  3. Artlantis 2020中文版
  4. 通过Ajax来简单的实现局部刷新(主要为C#中使用的UpdatePanel控件和ScriptManager控件)...
  5. 算法习题---线性表之单链表逆序打印
  6. Spring Boot实战pdf
  7. 第二章(jQuery选择器)
  8. 今天是周一,又是热的天气笼罩。
  9. List泛型集合总结(一)
  10. STL中mem_fun与mem_fun_ref的区别[转]