负载测试场景一般使用的线程组步线程组合并发线程组
步线程组和并发线程组是确定系统可以处理多少用户容量的方便且稳定的方法。通过逐步添加用户,可以知道在发现瓶颈时测试的虚拟用户的确切数量。
Stepping Thread Group
- 确定与标准线程组相同的参数
- 按部分增加线程负载
- 配置保持目标的加载时间
- 减少部分负载
参数说明:
- This Group will start 100 threads: 目标线程数
- First , wait for 1 seconds: 等待几秒后,开始启动线程
- Then start 0 threads; 开始时启动几个线程
- Next,add 20 threads every 30 seconds,using ramp-up 5 seconds: 每隔30s启动10个线程,10个线程5s启动完成
- Then hold load for 30 seconds: 启动线程达到最大值之后,再持续加载30s
- Finally , stop 5 threads every 1 seconds: 最后停止线程,每秒停止5个线程
场景
- 目标负载100个线程
- 等待0秒
- 在测试开始是启动0个线程
- 每30s添加10个线程,加速10s
- 目标负载保持60s
- 最后每1s停止5个线程
测试开始时等待0s,意味着测试在JMETER启动时立即开始,
每30s添加10个用户,直到100个用户。第一步添加1-10,接下来11-20,每个步骤有10个用户需要10s才能完成。之后JMETER等待30s,然后开始下一步。
达到100个线程后,所有的线程将继续运行并一起访问服务器
可以添加Active Threads Over Time 图表以跟踪负载计划的性能并确保它按预期运行。
Concurrency Thread Group
并发线程组是步线程组更现代的替代方案。并发线程组可以更好的模拟用户的行为,因为它可以更轻松地控制测试的长度,并且它会创建替换线程以防线程在进程中间完成。此外,并发线程不会预先创建所有线程,从而节省内存
参数说明:
- Target Concurrency (Number of Threads): 目标并发数(线程数)
- Ramp Up Time : 加速时间
- Ramp-Up Steps Count: 加速步数
- Hold Target Rate Time: 保持目标速率时间
- Time Unit - minutes or seconds: 分钟或秒
- Thread Iterations Limit (Number of Loops): 线程迭代限制(循环数)
- Log Threads Status into File : 将线程状态记录到文件中,将线程启动和线程停止事件保存为日志文件
场景
100个并发数,30s加速时间,10个步骤加速,30s保存目标速度
意味着,每 3s将添加 10 个用户,直到达到 100 个用户。(30s除以10步等于每步3s,100 个用户除以 10 步等于每步 10 个用户。总计 - 每 3 s 10 个用户)。达到 100 个线程后,所有线程将继续运行并一起访问服务器 30 s