目录
1. JMeter体系结构
2. JMeter运行原理
3. JMeter测试计划要素
4. JMeter的安装和启动
5. 小结
1. JMeter体系结构
JMeter的基本原理:
建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。
如果取样器中有参数化的需求,可以通过X2的配置元件或者前置处理器来完成。
如果有关联需求,可以通过后置处理器来完成。
如果想要设置运行场景,比如模拟多少用户,运行多长时间等,就设置线程组。
如果想要模拟并发场景,可以利用定时器来设置。
如果想要控制业务的执行逻辑,比如登录一次,可以用控制器来完成。
2. JMeter运行原理
(1)JMeter中是以线程的方式来运行的
JMeter是运行在JVM虚拟机上的,每个进程的开销要比LoadRunner大,如果以进程的方式来运行,每台负载机上的进程数量就不会允许太多,当我们要大量并发时,就需要大量的负载机,这不经济。而且Java也是支持多线程的,所以JMeter选择了以线程的方式来运行。
JMeter通过线程组来驱动多个线程运行测试脚本,对被测试服务器发起负载,每个负载机上都可以运行多个线程组。
(2)JMeter可以在GUI场景中运行,也可以使用命令行运行(对负载机的资源消耗更小)。
(3)JMeter支持远程运行。
JMeter的远程运行架构如图:
1)控制机
运用多台JMeter负载机进行性能测试时,被选中作为管理机的那台机器,就是控制机。
控制机也可参与脚本运行,同时负着管理指挥远程负载机运行的任务,并收集负载机的测试结果。
2)负载机
向被测试应用服务器发起负载的机器,就是负载机。
JMeter负载机受控制机管理。控制机同时也是一台负载机。
负载机受控制机管理之前,首先要启动一个客户端程序,然后控制机才可以接管负载机。
控制机把运行脚本隐蔽的发送到远程负载机,此时就不需要手动拷贝了。
利用JMeter做性能测试自动化时不能这样,需要用工具来拷贝。
3)远程运行逻辑
--> 远程负载机启动Agent程序,等待控制机连接。
--> 控制机连接上远程负载机。
--> 控制机发送指令(脚本和启动命令),启动线程。
--> 负载机运行脚本,回传状态(包括测试结果)。
--> 控制机收集结果并显示。
3. JMeter测试计划要素
(1)JMeter的一个脚本就是一个测试计划,也是一个管理单元。
(2)JMeter的请求模拟和并发数(线程数,一个线程代表一个虚拟用户)设置都在脚本文件中。
(3)JMeter测试计划要素有哪些?
脚本中测试计划只能有一个。
测试计划中至少有一个线程组。
至少有一个取样器。
至少有一个监听器。
4. JMeter的安装和启动
(1)安装
JMeter安装文件是绿色版本,解压到相关目录即可用。
配置好环境变量就可通过命令启动。
(2)启动
在终端输入jmeter,启动JMeter。
5. 小结
JMeter运行逻辑主要有三方面:
(1)利用取样器模拟用户请求。如果需要做数据和环境的准备,就使用配置管理器。如果需要对响应的数据做处理,就使用后置处理器。
(2)控制运行。使用线程组来设置运行场景,利用逻辑控制器来控制业务(控制取样器)。
(3)收集结果。利用断言来验证测试结果,利用监听器来收集显示测试结果。