Jmeter压测验证waf新建连接数

2022-10-13 11:41:11 浏览数 (2)

背景

生产环境压测验证某段链路或组件的新建连接数能力时,往往需要设置很高的并发,但这种操作存在一定风险和问题,若系统设置限流值,高并发场景下容易触发限流导致接口错误率升高,同时也存在将生产环境打挂的风险;本文主要说明如何通过Jmeter脚本避免以上问题

脚本编写步骤

  • 新建jmeter脚本,添加测试计划、线程组及需要测试的接口
  • 在测试接口中,右键添加->定时器->同步定时器(Synchronizing Timer),注意:模拟用户组数量需要与线程组中的线程数保持一致

同步计时器工作原理:比如设置100个线程、超时时间10000ms,从定时器工作开始计时,时间从0开始,在超时时间内第1个线程达到,则计时器重置为0;等待第2个线程,在超时时间内第2个线程达到,计时器重置为0;等待第3个线程... 只要相邻两个线程之间等待时间间隔没有超过10000ms,就会等待全部100线程后全部释放,否则就会停止等待立即释放。

同步计时器的两个参数设置及作用:

参数名

作用及设置

模拟用户组的数量(Number of Simulated Users to Group by)

与线程组中的线程数保持一致即可,相当于指定的同时释放线程数量

超时时间已毫秒为单位(Timeout in milliseconds)

多少毫秒后同时释放指定的线程数

  • 测试接口的连接超时与响应事时间设置,连接超时5s,响应超时10s

验证

  • 百度首页接口100并发添加同步计时器前
  • 百度首页接口100并发添加同步计时器后

案例

某项目需要验证waf新建连接数能力,需要不断加压,但为了避免过高并发将接口压挂,需要在脚本中添加同步定时器

  • 3000并发测试单接口,脚本中未添加同步定时器,可以看到QPS2.2w左右

3000并发waf新建连接数1000左右

  • 12000并发测试单接口,脚本中添加同步定时器,QPS1.2w

12000并发waf新建连接数1800左右

从上面两次压测可以看到,并发数远远与用户并发量对不上,所以waf设备存在一定瓶颈,更换waf设备后继续复压验证

  • 更换waf设备后,12000并发测试单接口,脚本中添加同步定时器

12000并发waf新建连接数基本与并发数对应,新waf有6台机器,平均单台机器新建连接数2k

总结

可以看到,添加同步计时器前后,相同并发下QPS还是存在一定差距。压测场景如果不支持将QPS压到极限,但需要较高并发验证链路中组件的某些能力时,添加同步计时器效果最佳。

0 人点赞