性能测试-JMeter安装环境及运行原理

JMeter环境需求

JMeter是纯Java应用程序,所以有Java运行环境的要求。不一样版本服务器

JMeter对Java版本的要求不尽相同。好比:网络

JMeter3.3仅支持Java 8多线程

JMeter4.0要求Java 8+(表示大于等于Java 8版本)架构

JMeter5.1.1要求Java 8+并发

Java版本通常指的是JDK版本,这两个概念能够无差异对待。目前JDK分布式

能够分为Oracle JDK与Open JDK两类,其中Open JDK是Oracleide

JDK的开源免费版。高并发

从2019年1月开始,LTS的Oracle JDK8与Oracle JDK11再也不免费,企业须要获取JDK的更新升级,则须要购买Orace的订阅服务。也能够不付费而使用免费的Open JDK 8/11,二者没有太大的区别。性能

JMeter运行原理

JMeter以建立多个线程的方式来模拟多个用户执行操做,一个线程表明一个虚拟用户。当JMeter执行测试时,测试计划会发送到负载机,并向负载机发送命令以CLI方式执行测试,产生多个线程向被测系统发送请求,生成负载。测试

基于操做方式,能够分为两种:

GUI模式

图形用户界面运行模式。可视化显示更加直观,可以使用鼠标操做更为方便。

CLI模式

命令行模式(旧称NON GUI)。

使用GUI模式存在以下问题:

1)GUI模式运行时会消耗大量的系统资源,从而影响测试结果;

2)某些环境中可能没法使用GUI模式,好比将JMeter部署在没有GUI的Linux系统上。

为了规避这些问题,JMeter提供了CLI模式,能够经过运行JMeter命令来执行测试。

建议使用GUI模式来建立和调试测试脚本;使用CLI模式执行测试并收集测试结果。

基于运行架构,能够分为两种:

单机模式

JMeter安装在一台服务器上,这台机器也是负载机,全部请求都从该机器发出

分布式模式

单机模式存在以下问题:

1)JMeter运行时,产生的众多线程会消耗大量的CPU,内存资源,负载机自己可能成为测试瓶颈;

2)网络上能传输的数据量受网络带宽影响,没法作到高并发,致使测试结果不许确。

使用分布式模式能够解决这些问题,使用一台Master控制多台远程Slave,将测试计划分发到不一样的Slave上执行,请求从不一样的Slave发出。

分布式运行原理

JMeter分布式体系结构

JMeter分布式执行测试过程
性能测试-JMeter安装环境及运行原理

1.首先启动每台Slave上的Agent程序

Windows: jmeter-server.bat,Linux/Unix: jmeterserver;

2.启动Master后自动链接各台远程Slave;

3.Master将存储在本地的测试计划(jmx文件)分发到各台远程Slave,并命令各Slave以CLI模式执行JMeter测试;

注意:参数化文件或依赖包须要手工拷贝到各台远程Slave上;

4.Slave执行测试向SUT(被测系统)发送请求,并接受服务器返回的响应结果;

5.Slave将测试结果回送给Master;

6.Master接收并汇总统计测试结果。

相关文章
相关标签/搜索