1 运行原理
1.1 概述
- JMeter通过线程组来驱动多个线程运行测试脚本对被测试服务器发起负载;
- 每个负载机上都可运行多个线程组;
- 运行场景可在GUI方式中完成,也可使用命令行,其中命令行的运行方式对于负载机的资源消耗更小;
1.2 远程运行
1.2.1 控制机
- 及被选中作为管理及的那台机器;
- 可参与运行脚本;
- 担负着管理远程负载机指挥远程负载机的任务;
- 收集远程负载机的测试结果。
1.2.2 负载机
- 即向被测试引用服务器发起负载的机器;
- 控制机也是一台负载机;
- 负载机受控制机管理,要启动一个客户端程序(Agent:jmeter-server.bat),此时控制机才可接管负载机。
1.2.3 远程运行逻辑
- 远程负载机启动Agent程序,待控制机连接;
- 控制机连接远程负载机;
- 控制机发送指令(脚本或命令)启动线程;
- 负载机运行脚本,回传状态(包括测试结果);
- 控制机收集结果并显示。
2 测试计划要素
一个脚本就是一个测试计划,也是一个管理单元,一个线程代表一个虚拟用户;请求模拟和并发数都在脚本文件中设置。
- 要素1:脚本中测试计划只能有1个
类似LR中的Controller中的测试场景,一个测试场景只能有一个。在JMeter中脚本是树形结构,测试计划是根节点。
- 要素2:测试计划中至少要有1个线程组
负载是通过线程组驱动,所以计划中至少要出现一个线程组;也可支持多个线程组,类似LR中的混合场景。
- 要素3:至少要有1个取样器
测试的目的是模拟用户请求,没有取样脚本就无任何意义了。
- 要素4:至少要有1个监听器
用来收集测试结果,测试结果可衡量系统性能,分析系统性能。