2.1 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是Oracle JDK的开源免费版。

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

2.2 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分布式执行测试过程
1.首先启动每台Slave上的Agent程序Windows: jmeter-server.bat,Linux/Unix: jmeter-server;
2.启动Master后自动连接各台远程Slave;
3.Master将存储在本地的测试计划(jmx文件)分发到各台远程Slave,并命令各Slave以CLI模式执行JMeter测试;注意:参数化文件或依赖包需要手工拷贝到各台远程Slave上;
4.Slave执行测试向SUT(被测系统)发送请求,并接受服务器返回的响应结果;
5.Slave将测试结果回送给Master;
6.Master接收并汇总统计测试结果。

2.3 单机环境部署

这里以在Windows 10(64bit)上安装最新的JMeter5.1.1版本为例进行讲解。

安装步骤如下:

1.安装JDK 11(Oracle JDK 11学习用途无妨)安装路径默认为C:Program FilesJavajdk-11.0.3
2.配置JDK 11环境变量2.1.新建环境变量JAVA_HOME,将其值设置为:C:Program FilesJavajdk-11.0.32.2.修改环境变量Path,在其值后追加如下内容:;%JAVA_HOME%bin2.3.测试JDK 11分别运行java,javac,java -version命令若前两个命令显示了命令的语法信息,最后一个命令显示了JDK 11的版本信息,则表明JDK安装成功。
3.安装JMeter5.1.1将apache-jmeter-5.1.1.zip解压缩到任意目录即可,比如:D:Program Filesapache-jmeter-5.1.1
4.启动JMeter5.1.1(GUI模式)到解压缩目录下的bin子目录中,找到jmeter.bat,双击启动即可。

2.4 分布式环境部署

程序清单

1.jdk-8u212-linux-i586.tar.gz (JDK8 32bit)
2.apache-jmeter-5.1.1.zip (JMeter Master与Slave安装包相同)

服务器列表

这里以Master控制2台Slave为例介绍部署过程。服务器信息如下表所示:

操作步骤

1.部署并配置多台Slave;
2.部署并配置Master;
3.GUI方式启动Master测试验证。

  1. 部署并配置多台Slave
[root@localhost ~

2. 部署并配置Master

jmeter.properties这个配置文件,编辑:
将:

3. GUI方式启动Master测试验证

以GUI方式启动Master,菜单Run-->Remote Start中可以看到配置的远程Slave信息,如下图所示:

注意事项

1.Master与各Slave使用的Java版本保持一致;
2.Master与各Slave使用的JMeter版本保持一致;
3.若测试计划中引用了某插件,则Master与各Slave都要包含该插件;
4.测试计划只需要放在Master上,执行时会自动分发到各Slave,不需要每台Slave复制一份;
5.若测试计划中引用到了参数化文件,需要将参数化文件复制到各台Slave上,并且存放的目录路径需要保持一致;
6.分布式执行的线程数=假定单机部署执行的线程数*Slave数。比如单机部署时运行50个线程,先以分布式运行,有4台Slave,则总共执行的线程数为:50*4=200。

java8安装_JMeter必知必会系列(2) JMeter安装部署相关推荐

  1. 前端必知必会HTTP请求系列(二)简单一点的HTTP协议

    http协议用户客户端和服务器之间的通信 http协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务器之间的通信. 那么问题来个如果两台服务器之间一台服务器向另一台服务器进行接口请求那谁是 ...

  2. 读书笔记系列1——MySQL必知必会

    读书笔记系列1--MySQL必知必会 文章目录 读书笔记系列1--MySQL必知必会 MySQL官方文档:https://dev.mysql.com/doc/ 第一章 数据库基础 *2021.11.2 ...

  3. 必知必会系列-JAVA虚拟机原理

    系列文章 必知必会系列-Spring技术原理 必知必会系列-JAVA虚拟机原理 必知必会系列-Redis技术原理 引言 随着技术的不断演进,在不同时间阶段都会有不同的技术产物,那么如何快速的学习和掌握 ...

  4. 【软考系统架构设计师】知识点必知必会系列汇总

    [软考系统架构设计师]知识点必知必会系列汇总 章节号 章节名 链接 第一章 安全性和保密性设计 https://blog.csdn.net/Last_Impression/article/detail ...

  5. 《SQL必知必会(第5版)》挑战题笔记 | 所用DBMS为Mysql,mysql workbench安装

    文章目录 一.安装 step1:mysql安装 step2:mysql workbench安装 二.下载随书资料 三.代码实战练习 2.2 检索单个列 四.MySQL知识点回顾 五.挑战题 2.9挑战 ...

  6. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  7. 《渗透测试实践指南 必知必会的工具与方法 (原书第2版)》读书摘录

    ----------------------------------------------------------------------------分割线--------------------- ...

  8. Java架构师必知必会,带走不谢

    可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地. 成为Java架构师,需要掌握哪些技能呢 ...

  9. c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战

    本文涵盖 前言 高级函数概念 函数作为参数的高阶函数 map filter reduce sort详解与实战 函数作为返回值的高阶函数 isType函数与add求和函数 如何自己创建高阶函数 前言 一 ...

  10. MySQL必知必会教程:深入理解MySQL技术内幕

    2019独角兽企业重金招聘Python工程师标准>>> MySQL必知必会教程:深入理解MySQL技术内幕 作为最流行的开源数据库软件之一,MySQL数据库软件已经是广为人知了.当前 ...

最新文章

  1. python程序实例教程基础-python基础教程第三版源代码
  2. [CF587F]Duff is Mad[AC自动机+根号分治+分块]
  3. 超硬核!11 个非常实用的 Python 和 Shell 拿来就用脚本实例!
  4. eclipse 使用指南
  5. PID控制器开发笔记之三:抗积分饱和PID控制器的实现
  6. 装cv2加速_手动安装OpenCV下的IPP加速库
  7. 2019-OO-第二单元总结
  8. 20162314 Experiment 3 - Sorting and Searching
  9. Linux性能测试工具
  10. xlsxwriter进度条php,PHP_XLSXWriter
  11. springboot 自定义starter
  12. 阿里云网盘:阿里云盘公测预约中,附官网地址入口
  13. Matlab微分方程求解
  14. 缺陷管理工具-QC篇
  15. 小米智能插排内部结构
  16. 联想thinkpad E450C如何进入BIOS?
  17. 音调、响度 和 周期(频率) 占空比 的关系
  18. cocos2d-x 改变精灵图片的2种方法
  19. Java 安全编程详解
  20. 【架构师】零基础到精通——康威定律

热门文章

  1. RTMP协议从入门到放弃
  2. 大剑无锋之简单介绍一下虚拟内存【面试推荐】
  3. mysql的分页查询
  4. Spark _27_自定义函数UDF和UDAF
  5. hdfs中一个block块默认多大?
  6. springboot _配置过滤器、拦截器、使用原生servlet
  7. Storm 03_Storm 架构设计
  8. Java程序员需要掌握的计算机底层知识(四):内存管理
  9. SQL查询最大值,返回整行数据
  10. CodeBlocks报错原因分析:找不到编译器 / th_en_US.idx' not found! 提示