JMeter系列(三)--组件知识

组件

JMeter的脚本是由JMeter的各种组件构成的,组件就是指JMeter封装好了具备有各种功能的可以快捷操作的元素。一般来说,同一种类型、作用的组件会归为一类。在JMeter中,组件总计有以下几类:

  • 测试计划
  • 线程(用户)
  • 测试片段
  • 逻辑控制器
  • 配置元件
  • 定时器
  • 前置处理器
  • 取样器
  • 后置处理器
  • 断言
  • 监听器
  • 非测试元件

PS:相同类型的组件在GUI界面具有相同的图标,相同类型的组件不能通过图标区分,要根据组件页面的组件类型名称进行区分。

测试计划

测试计划组件是Jmeter脚本中的根组件,属于必选组件,JMeter的脚本都是位于测试计划组件。因此要保存脚本则需要保存测试计划,而不能选中某一个组件点击保存(老版本存在,新版本已经将保存按钮修复为保存测试计划)。在测试计划组件中,我们一般用到的设置为:

1、可以在测试计划下定义变量,这里定义的变量将在整个测试计划下,即整个脚本中起效。通常来说,比如说服务器地址、一些因为环境变化可能需要变化的值(变化不频繁)。

2、独立运行每个线程组。在JMeter的测试计划下,可以添加多个线程组组件。对于同一种线程组,默认情况下不同线程组中的线程是独立、并行执行的。而如果需要脚本按照测试计划下的线程组的自然顺序串行执行,则需要勾选该选项。

3、该选项可以将JMeter脚本运行过程中需要用到的jar包(一般是beanshell、jsr等组件)引入。通过该方式引入jar包,不需要重启JMeter。不过不推荐使用该方式,建议还是将jar包引入到lib目录,然后重启JMeter。

线程(用户):线程组类组件,属于必选组件。所有的请求类组件必须位于线程组组件下才可以执行。

线程组组件有三种可选的线程组:

  • setUp线程组
  • 线程组
  • tearDown线程组

PS:

  • 以上三种线程组都可以用来设置线程计划,作用是一样的。
  • 如果一个测试计划下存在多个不同类型的线程组,则运行机制如下:
      • 同一种类型的线程组是同步运行,即并发运行的。
      • 不同类型的线程组,遵循下列顺序:

所有的setUp线程组-->线程组-->tearDown线程组。

      • 执行顺序和线程组组件在测试计划中的顺序无关。

线程组设置(计划)

在Jmeter中,场景计划就是测试计划,测试计划又是由测试计划组件中的所有线程组来实现的。

Jmeter的场景计划相当于是LR中的group模式。

  • 线程数:就是虚拟用户数量,就是用来向服务器发起请求的用户数量。

PS:线程数不等于并发数,线程数>=并发数。

线程数不一定等于在线用户数,线程数>=在线用户数。

  • Ramp-Up时间:该选项是用来设置Jmeter启动所有线程所需要的总时间。

PS:

·Jmeter启动线程采用的是平均每隔N秒启动一个线程的方式。

N秒=总时间/线程数

·启动线程的频率和向服务器发起请求的频率没有必然关系。

  • 循环次数:就是指每一个线程循环执行脚本的次数。

  • Same User on each Iteration:和keep-alive和cookie都有关系。

对于涉及到html资源加载的情况,建议勾选。

如果是纯http接口,不涉及到html资源加载的情况,建议不勾选。

PS:

如果服务器端做了keep-alive的支持,则建议勾选,否则不建议。

该选项和http请求中的keep-alive选项保持同步

  • 调度器
      • 持续时间:是指整个测试所持续执行的时间,即从点击启动按钮开始,延迟“启动延迟”时间之后,执行脚本的总时间。
      • 启动延迟:是指点击启动按钮之后,延迟N秒再开始执行脚本。

PS:

在jmeter中,线程停止的条件是:满足循环次数or持续时间到达。

逻辑控制器:

这类组件主要是对取样器组件起效,是用来控制取样器组件的执行逻辑的。

本质上是图形化、组件化、傻瓜式的代码逻辑控制组件。

PS:

逻辑控制器只对其子组件有效。

常用的逻辑控制器:

·仅一次控制器

·简单控制器

·循环控制器

·事务控制器

·foreach控制器

·if控制器

取样器:

Sampler,又叫请求,严格来说是不同协议的请求的模板。

取样器是必加组件,根据协议选择对应的取样器组件即可。

具体介绍参考http协议的文章。

配置元件:

是用来辅助测试实现的一些组件,属于可选组件。根据实际的情况选择使用即可。

定时器:

和时间有关的组件,思考时间、集合点组件都属于定时器类组件。

前置处理器:

运行在取样器之前的一类组件,一般用来完成一些前置性的工作,比如说数据处理等。

前置处理器执行是发生在发送请求之前。

·后置处理器:

运行在取样器之后的一类组件,一般是用来对响应结果做处理的。

后置处理器是发生在获取到响应之后。

·断言:

就是用来实现检查点功能的组件,用来检查脚本的业务执行是否成功。

·监听器:

就是日志组件,是用来收集和展示各种不同类型的日志数据。

PS:配置元件、定时器、前置处理器、后置处理器、断言、监听器这六大类组件都是用来服务于取样器组件。

这六类组件对于取样器组件的作用机制是和作用域机制有关。

·作用域:

作用域是指六大类组件对于取样器组件的起效机制。

作用域的定义:六大类组件会对其父级的组件(请求)、所有同级的组件、所有同级组件的子组件有效。

作用域起效的规则如下:

  • 定时器、前置处理器是发生在其作用域范围内的所有的请求之前,和组件本身在测试计划中的先后顺序无关。执行次数等于其作用域范围内的请求组件的数量。
  • 后置处理器、断言是发生在其作用域范围内的所有的请求之后,和组件本身在测试计划中的先后顺序无关。执行次数等于其作用域范围内的请求组件的数量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值