一.jmeter参数化-csv数据文件设置
CSV Data Set Config 可以从指定的文件中一行一行的提取文本内容,每行的数据通过分隔符拆解,并与变量名一一对应,就可以供取样器引用了。
所以在配置数据时,我们需要把参数化的数据进行分行。文件格式可以是csv也可以是txt。下面以登陆功能演示csv参数化过程。
一、配置文本数据
登陆一般情况下只需要两个参数,用户名与密码,在配置数据时,每行分别设置两个值
二、添加并配置CSV Data Set Config
三、引用csv文件中的数据
结果树中查看引用结果
二.设置集合点
.添加同步定时器,右击线程组-添加-定时器-Synchronizing Timer
4.拖动同步定时器,调整位置
5.设置同步定时器
Number of Simulated Users to Group by的意思是分批执行请求。当线程数到达设置的数量后,才开始发送请求。
例如设置为5,如果启动的线程数到了4是不发送请求的,之后当再启动一个线程,线程数为5的时候才开始发送请求。
这样就相当于设置了集合点。只有达到我们想要的并发线程数的时候才开始并发。
Timout的意思是等待请求多久后,不管线程数有没有到达设置的并发数量都开始运行测试。
6.设置线程数
7.添加查看结果树,查看结果
8.点击运行按钮
三.逻辑控制器
仅一次逻辑控制器
仅一次控制器:
将仅一次控制器作为循环控制器的子节点,仅一次控制器在每次循环的第一次迭代时均会被执行。
转换控制器 switch controller
四.常用定时器
在默认情况下,jmeter 发送每个请求之间是没有延时的,如果采用默认方式,如果线程数足够大,瞬间就会将服务器压死。再则在实际的业务过程中,请求之间是有一定时间的停顿的所以在请求之间设置合理的延时是必须的,也是更接近用户真实业务情况。在 jmeter 中,定时器组件提供了系列不同类型的延时控制。合理使用定时器组件,能让你的性能测试更接近真实,更能挖掘出系统的瓶颈和评估系统的性能指标。
定时器类型
1、固定定时器
这是最简单的一种定时器,也是新手最常用的一种方式。下面我们看下其具体设置:
因其是固定值,在实际模拟用户请求的过程中,会失去灵活性,不推荐大量使用该定时器。
2、高斯随机定时器
高斯随机定时器,又可以称作正态分布随机定时器,该定时器可以设置在两个请求间随机延时时长。且总的延时是高斯分布(正态分布)的总和(均值:0.0、标准差 1.0)。在使用时须指定偏差延时值和偏移值。。下面我们看下其具体设置:
例如在访问百度首页,然后输入关键词进行搜索,受网络、人等各种因素影响,有的人打开首页后 3s 后则进行了搜索,有时则是 10s或更多时间,在正常情况下,打开百度然后进行搜索,假设用户间隔在 3s-10s 之间,从统计学来看,这个间隔时间可能是一个正态分布或接近正态分布。而不是一个固定的常量。从笔者在日常实践中,也更推荐使用该定时器。能更接近模拟用户实际情况。
3、Synchronizing Timer
这个定时器应该是大家很期望的,它有在 LoadRunner 中有一个大家熟悉的名称:集合点。是的,它实现了某种意义上的并发。
请注意 Timeout in milliseconds 尽量填写一个合理的值。
4、Uniform Random Timer
该定时器可以在请求之间设置一个随机延时,每个随机延时有相同的发生概率。总的延时等于随机延时 + 偏移延时值。该定时器也是常用之一。
5、Poisson Random Timer
类似高斯随机定时器,只是其随机延时值发生在一个特定的值。总的延时值呈现泊松分布。
6、Constant Throughput Timer
通过控制每分钟请求数(即控制吞吐的方式)来控制是否进行延时暂停。
例如,当我们需要使服务端长期处于一定的压力下时,可以通过该定时器来控制吞吐。
注意:吞吐值可以是常量,也可以使用函数来动态生成,已达成更灵活的使用,满足不同的压力场景。
7、JSr R223 Timer 和 BeanShell Timer
这两种定时器就不细说了,简单的说就是提供了脚本方式来进行控制,是更为灵活的方式。一般情况下,大家是不会用的。当然有兴趣的,可以去研究下,增强理解。
总结
本文就各种定时器进行了介绍,并大致介绍了其可能的应用场景。不管是哪种定时器,都需要深入理解业务的情况下,统筹规划使用。以更深入的发挥其作用,模拟好真实应用场景,更好的挖掘性能瓶颈和评估目标服务的性能情况。