JMeter:集合点,同步定时器的应用实例

JMeter:集合点,同步定时器的应用实例,第1张

在性能测试过程中,为了真实模拟多个用户同时进行 *** 作以度量服务器的处理能力,可以考虑同步虚拟用户以便恰好在同一时刻执行 *** 作或发送请求。

通过插入集合点可以较真实模拟多个用户并发 *** 作。

(注意:虽然通过加入集合点可以约束请求同时发送,但不能确保请求同时到达服务器,所以只能说是较真实模拟并发)

在JMeter中可以通过同步定时器来设置集合点。

Synchronizing Timer的目的是阻塞线程,直到X个线程被阻塞,然后它们全部被释放。因此,Synchronizing Timer可以在测试计划的各个点创建大的即时负载。

▲ 配置项

设置一次性释放的线程数(默认为0)。通俗的理解就是并发用户数。

若设置为0,表示一次性释放的线程组下所有的线程。也就是并发用户数等于线程组下设置的线程数。

设置超时时间(单位毫秒ms,默认为0)。

若设置为0,定时器需要无条件等待设置线程数个数的线程全部到达才释放。比如设置线程数为100,则定时器无条件等待直到有100个线程达到才释放。

若设置的值大于0,则定时器以设置的超时时间作为等待释放的条件。

若相邻两个线程到达同步定时器的时间间隔大于超时时间,即使设置的线程数的线程未全部到达,定时器也会停止等待而释放到达的线程。

比如设置线程数为100,超时时间为2000ms,

工作原理为: 从定时器工作开始计时,时间从0开始,在超时时间内第1个线程达到,则计时器重置为0;等待第2个线程,在超时时间内第2个线程到达,计时器重置为0;等待第3个线程

只要相邻两个线程组之间的等待时间间隔没有超过2000ms的超时时间,则会等待全部100个线程达到才释放。

否则会停止等待立即释放,比如,在等待第24个线程到达定时器时,计时器时间超过2000ms了,则定时器停止等待,立即释放到达的23个线程。

▲ 注意事项

在使用同步定时器时,请注意如下事项:

● 1超时时间设置合理性

● 2同步定时器仅对同一JVM中的线程有效,因此在分布式测试中不要使用,因为当JMeter分布式部署执行性能测试时,测试计划分发到不同的Slave上执行,为了确定是否满足线程释放条件,各台Slave上的JVM需要相互通信才能确定,实现困难且即使实现了也难免存在延时,这样就不能保证真实的并发。所以目前JMeter的做法是仅支持单个JVM。

这里以ECshop前台系统登录并发为例。

假设默认50个用户并发登录。

添加同步定时器,将释放线程数设置为50,超时时间设置为1000ms。

如下图所示:

右上角设置->高级->系统->打开您计算机的代理设置->连接->局域网设置->勾选“为LAN使用代理服务器”->地址输入:127001->端口输入:8888->勾选‘’对于本地地址不使用代理服务器->确定。

PS:设置代理时要关掉抓包工具,因为它也是一个代理服务器。

注:jmeter自带代理服务器

1、设置代理

启动Jmeter->测试计划->右键添加“非测试元件”->选择> 1 选中可视化界面中左边树的Test Plan节点,单击右键,选择Add'Thread Group,界面右边将会出现他的设置信息框。
2 Thread Group有三个和负载信息相关的参数:
Number of Threads: 设置发送请求的用户数目
Ramp-up period: 每个请求发生的总时间间隔,单位是秒。比如你的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒
Loop Count: 请求发生的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复 指定的次数,如果输入0,那么请求将执行一次。
根据我们演示例子的设计,我们应该将Number of Threads设置为5,Ramp-up period设置为0(也就是同时并发请求),不选中forever,在Loop Count后面的输入框中输入2

1、把jmeter放到需要压测的服务器目录下,然后解压
2、修改服务器jmeter下bin目录中的jmeterproperties和jmeter-server相关配置
jmeterproperties文件修改启动端口,默认端口1099,也可设置为其他端口
修改前:

jmeter-server文件修改:修改为需要压测服务的ip,也就是jmeter所在服务器的ip

3、修改本地jmeter jmeter-properties的配置:远程主机地址修改为压测服务器ip地址,如果服务器端口设置不是1099的默认端口,则还需要加上端口,格式:xxxxxxxxxxxx:port,多个服务同时加压,需要配置多个ip地址,用逗号隔开

4、本地jmeter启动

jmeter50及以上启动时会报FileNotFoundException
解决办法:本地和部署在服务器上的jmeterproperties文件配置修改为:serverrmissldisable=true
修改后重启本地和服务器的jmeter


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10593954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存