目录

1. JMeter体系结构

2. JMeter运行原理

3. JMeter测试计划要素

4. JMeter的安装和启动

5. 小结


1. JMeter体系结构

JMeter的基本原理:

建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。

如果取样器中有参数化的需求,可以通过X2的配置元件或者前置处理器来完成。

如果有关联需求,可以通过后置处理器来完成。

如果想要设置运行场景,比如模拟多少用户,运行多长时间等,就设置线程组

如果想要模拟并发场景,可以利用定时器来设置。

如果想要控制业务的执行逻辑,比如登录一次,可以用控制器来完成。

gatling压测java整合_线程组

 

2. JMeter运行原理

(1)JMeter中是以线程的方式来运行的

JMeter是运行在JVM虚拟机上的,每个进程的开销要比LoadRunner大,如果以进程的方式来运行,每台负载机上的进程数量就不会允许太多,当我们要大量并发时,就需要大量的负载机,这不经济。而且Java也是支持多线程的,所以JMeter选择了以线程的方式来运行。

JMeter通过线程组来驱动多个线程运行测试脚本,对被测试服务器发起负载,每个负载机上都可以运行多个线程组。

(2)JMeter可以在GUI场景中运行,也可以使用命令行运行(对负载机的资源消耗更小)。

(3)JMeter支持远程运行。

JMeter的远程运行架构如图:

gatling压测java整合_线程组_02

1)控制机

运用多台JMeter负载机进行性能测试时,被选中作为管理机的那台机器,就是控制机。

控制机也可参与脚本运行,同时负着管理指挥远程负载机运行的任务,并收集负载机的测试结果。

2)负载机

向被测试应用服务器发起负载的机器,就是负载机。

JMeter负载机受控制机管理。控制机同时也是一台负载机。

负载机受控制机管理之前,首先要启动一个客户端程序,然后控制机才可以接管负载机。

控制机把运行脚本隐蔽的发送到远程负载机,此时就不需要手动拷贝了。

利用JMeter做性能测试自动化时不能这样,需要用工具来拷贝。

3)远程运行逻辑

--> 远程负载机启动Agent程序,等待控制机连接。

--> 控制机连接上远程负载机。

--> 控制机发送指令(脚本和启动命令),启动线程。

--> 负载机运行脚本,回传状态(包括测试结果)。

--> 控制机收集结果并显示。

3. JMeter测试计划要素

(1)JMeter的一个脚本就是一个测试计划,也是一个管理单元。

(2)JMeter的请求模拟和并发数(线程数,一个线程代表一个虚拟用户)设置都在脚本文件中。

(3)JMeter测试计划要素有哪些?

脚本中测试计划只能有一个。

测试计划中至少有一个线程组。

至少有一个取样器。

至少有一个监听器。

gatling压测java整合_控制机_03

4. JMeter的安装和启动

(1)安装

JMeter安装文件是绿色版本,解压到相关目录即可用。

配置好环境变量就可通过命令启动。

gatling压测java整合_测试计划_04

 

gatling压测java整合_控制机_05

gatling压测java整合_线程组_06

  

(2)启动

在终端输入jmeter,启动JMeter。

gatling压测java整合_控制机_07

gatling压测java整合_线程组_08

 

5. 小结

JMeter运行逻辑主要有三方面:

(1)利用取样器模拟用户请求。如果需要做数据和环境的准备,就使用配置管理器。如果需要对响应的数据做处理,就使用后置处理器。

(2)控制运行。使用线程组来设置运行场景,利用逻辑控制器来控制业务(控制取样器)。

(3)收集结果。利用断言来验证测试结果,利用监听器来收集显示测试结果。