相关文章推荐
腹黑的豆浆  ·  java stream ...·  4 月前    · 
犯傻的蟠桃  ·  NSIS - 知乎·  1 年前    · 

二、 Jmeter 的定时器

1、定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面);

2、当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;

3、如果希望定时器仅应用于其中一个sampler,则把定时器作为子节点加入;

4、如果希望在sampler执行完之后再等待,则可以使用Test Action;

Jmeter的固定定时器Constant Timer(作用相当于思考时间与迭代时间)

Jmeter的固定定时器Constant Timer的作用就是延迟

如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器; 需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间。

对于 java请求 这个sampler来说,定时器相当于loadrunner中的pacing(两次迭代之间的间隔时间), 间隔时间不会计入响应时间

对于 事务控制器 来说,定时器相当于loadrunner中的think time(思考时间:实际操作中,模拟真实用户在操作过程中的等待时间), 间隔时间会计入响应时间

这里附上一个传送门,对loadrunner中的pacing和think time有比较全面的解释: https://zhidao.baidu.com/question/1431215934913423459.html

我们通常说的响应时间,应该大部分情况下是针对某一个具体的sampler(http请求),而不是针对一组sampler组合的事务 。

三、其他相关定时器

高斯随机定时器(Gaussian Random Timer)

如需要每个线程在请求前按随机时间停顿,那么使用这个定时器,上图表示暂停时间会分布在100到400之间,计算公式参考:Math.abs((this.random.nextGaussian() * 300) + 100)

传送门(什么是高斯随机分布): https://zhidao.baidu.com/question/89318504.html

均匀随机定时器(Uniform Random Timer)

和高斯随机定时器的作用差异不大,区别在于延时时间在指定范围内且每个时间的取值概率相同,每个时间间隔都有相同的概率发生,总的延迟时间就是随机值和偏移值之和。

下面表示的是随机延迟时间的最大值是100毫秒:

(1)Random Delay Maximum(in milliseconds):随机延迟时间的最大毫秒数

(2)Constant Delay Offset(in milliseconds):暂停的毫秒数减去随机延迟的毫秒数

固定吞吐量定时器(Constant Throughput Timer)

可以让JMeter以指定数字的吞吐量(即指定TPS,只是这里要求指定每分钟的执行数,而不是每秒)执行。

吞吐量计算的范围可以为指定为当前线程、当前线程组、所有线程组等范围,并且计算吞吐量的依据可以是最近一次线程的执行时延。这种定时器在特定的场景下,还是很有用的。

BeanShell定时器(BeanShell Timer)

这个定时器,一般情况下用不到,但它可以说是最强大的,因为可以自己变成实现想要做的任何事情,例如:希望在每个线程执行完等待一下,或者希望在某个变量达到指定值的时候等待一下。

这里给大家介绍下BeanShell:

BeanShell是一种松散类型的脚本语言(这点和JS类似),一种完全符合java语法的java脚本语言,并且又拥有自己的一些语法和方法。

传送门(另外一位博客园作者的博客): http://www.cnblogs.com/jssy/archive/2006/10/23/537101.html

泊松随机定时器(Poisson Random Timer)

这个定时器在每个线程请求之前按随机的时间停顿,大部分的时间间隔出现在一个特定的值,总的延迟就是泊松分布值和偏移值之和。

上面表示暂停时间会分布在100到400毫秒之间:

(1)Lambda(in milliseconds):兰布达值

(2)Constant Delay Offset(in milliseconds):暂停的毫秒数减去随机延迟的毫秒数

传送门(什么是泊松随机数): http://baike.baidu.com/link?url=CJ0_Qtuilzp3a4Xos9N7V_hFQjaf_zb_aM1wggqxIYGDGWjtKsp6JSjRIQ110lE38sQOKYcgNUMjRuMAPGb3xK

JSR223定时器(JSR223 Timer)

在jemter最新的版本中,新增了这个定时器,可以这么理解,这个定时器相当于BeanShell定时器的 父集 ,它可以使用java、JavaScript、beanshell等多种语言去实现你希望完成的事情;

我们都知道jemter是一种开源的纯java工具,可以自己构件各个组件,jar包去完成各种事情。

传送门(关于JSR223): http://wenku.baidu.com/link?url=GUFnww9nb_1D6MlFd1YksYrNVk1NXF74ov8kJL06MmqVdmH_Q9v4YnWK-_gZ-04zL4QEqD9VN48OrXi4JyXpxosNZd8LBfIWhyhhxgUbrAC

BSF定时器(BSF Timer)

BSF Timer,也是jmeter新的版本中新增的定时器,其使用方法和JSR223 Timer很相似,只需要在jmeter的lib文件夹导入其jar包,就可以支持脚本语言直接访问Java对象和方法的一定时器。

有了它 , 你就能在java application中使用javascript, Python, XSLT, Perl, tcl, ……等一大堆scripting language. 反过来也可以;

就是在这些scripting language中调用任何已经注册过了的JavaBean,java object。它提供了完整的API实现通过Java访问脚本语言的引擎。

由于本人对java了解不深,只能通过查阅相关资料,简单描述下其作用,不足之处,希望指正。

传送门(BSF): http://baike.baidu.com/link?url=0RRkO1WqT1SdaXIzohqnEU8lcilpc_Sqwy7HtfpzCdCX1kyyLC5qttpF8jayTWFZi_tCbFbzMEw8FxHFYnIGYK

一、LR中,思考时间与迭代时间设置如下:思考时间thinktime:是指在LR脚本运行中进行的等待时间迭代时间pacing:是指在LR脚本迭代之间的等待时间二、Jmeter的定时器1、定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面);2、当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;... 多--并发量 快--延时、响应 时间 好--稳定性(长 时间 运行) 省--资源利用率 响应 时间 :对请求作出响应所需要的的 时间 ,是用户感知软件性能的主要指标。响应 时间 包括: 1.用户客户端呈现 时间 2.请求/响应数据网络传输 时间 3.应用服务器处理 时间 4.数据库系统处理 时间 响应 时间 多少合理?对于一个Web系统,普遍接受的响应 时间 标准为2/5/8秒(2秒--非常好;5秒--可接受;8秒是上限) 2、并发用户数 用户...
Jmeter 之八大可执行元件及执行顺序 初步接触 Jmeter ,对比LoadRunner进行熟悉,╮(╯▽╰)╭、毕竟我对LoadRunner还是比 Jmeter 熟悉。 1、配置元件 用来提供对静态数据配置的支持。例CSV Data Set config可以将本地数据文件形成数据池(Date Pool)。 2、定时器(具有LR的Think_ time 功能) 用于操作之间设置等待 时间 ,等待 时间 是性能测试中...
在我们 使用 Jmeter 进行接口自动化或者压测的时候,重复 迭代 时有可能会 使用 时间 来作为唯一标记。在进行接口测试时,指定日期的参数,也想随着不同时期执行时采用函数的方式来有规律的进行赋值。 Jmeter 的函数助手提供了三种 时间 函数,分别是: time time Shift、RandomDate 2、函数助手 1、打开 Jmeter ,例如:测试计划里,依次创建线程组、用户参
文章目录前言一、Think time 是什么?二、 Jmeter 测试活动Flow Control Action 实现Think time 三、 Jmeter 固定定时器1.固定定时器Constant Time r与测试活动的区别2.固定定时器Constant Time r作用域总结 本文总结 Jmeter 实现Loadrunner中Think time 的方式,以及 Jmeter 固定定时器的作用域 一、Think time 是什么? 示例: 思考 时间 (Think Time ),该 时间 指的是用户在进行操作时,每个动作之间的间
先明确一些概念: 1)定时器是在每个sampler(采样器)之前执行的,而不是之后; 是的,你没有看错,不管这个定时器的位置放在sampler之后,还是之下,它都在sampler之前得到执行。 2)定时器是有作用域的;当执行一个sampler之前时,所有当前作用域内的定时器都会被执行; 3)如果希   一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。 单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应 时间 QPS(TPS):每秒钟r
本文来介绍, JMeter 如何插入 思考 时间 。前面介绍过一个真实的性能测试场景,是需要加入 思考 时间 ,来模拟真实用户行为。本文就来介绍,如何在三个请求之间添加 思考 时间 。 1. 在Test Plan下新建一个Thread Group 2. 在Thread Group下新建一个Simple Controller 右击Thread Group->add->Logic Controller->Simple
本文要介绍的是在 JMeter 中如何设置负载压力场景中的用户的进入和退出设置,也就是步伐(Pacing或者Stepping)的设置。 什么是实际的性能测试 1)有 思考 时间 ,用户在做不同操作之间有 时间 停顿,或者延迟, 思考 时间 就是模拟用户的操作过程中的停顿的间。 2)步伐,速度:主要包括,大量用户进来的 时间 和退出 时间 ,控制 迭代 之间的 时间 ,例如,前面文章介绍的一个现场用户20个,设置5秒内全部进入,
考虑 时间 Thinking Time 指的是在性能测试脚本中,事务与事务之间,会有一些短暂的停顿,就好像真实用户在操作时,两次操作之间需要考虑一下。比如用户注册的时候,在打开注册页面到提交注册页面之间,是有一段考虑 时间 的(用户在填写个人信息)。 下面就讨论一下在性能测试实战中,为什么要设置考虑 时间 。 先说一个概念:吞吐量,这指的是服务器系统(包括软件和硬件)单位 时间 内处