Jmeter(四十四) - 从入门到精通高级篇 - Jmeter远程启动(本地运行+远程运行)(详解教程)
1.简介
这篇文章其实很简单,就是为下一篇文章做一个铺垫,所以宏哥给小伙伴或童鞋们提前热身一下。
2.什么是远程运行?
远程执行,就是脚本放在本地,执行却在另一台电脑上执行,当然,可以是远程多台电脑一起执行。最常见的场景就是,跑性能测试的时候,一台电脑负载不起需要的线程时,就需要两台或者更多的电脑来启动线程跑测试,线程就相当于是虚拟用户。在网上,通常会说,超过1000个线程时,就不要使用一台电脑跑了,而是选择使用多台电脑一起负载。这个说法并不全对,比如,脚本就写一条insert语句,往数据库中插入数据,启20个线程跑,估计你的电脑CPU使用率就要100%了。所以,最终还是要看电脑承受得住否,而不是看多少个线程,不同的测试脚本,对测试机的压力不一样。很多时候,做性能测试的时候,为了模拟真实的用户操作,都会加等待时间。比如用户登录功能,用户在输入用户名和密码的时候,这个时候,服务器就是在等待,所以脚本在这里就会加一个等待时间。
3.为什么要远程运行?
Jmeter 是Java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。其实,Jmeter的远程启动可以帮助我们解决此问题,通过单个 jmeter 客户端控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。
4.环境
宏哥的本地环境,如下:
Jmeter版本:5.1.1,如下图所示:
系统:Windows 10版本 64位系统(32位的同学自己想办法哦),如下图所示:
宏哥的远程环境,如下:
Jmeter版本:5.1.1,如下图所示:
系统:Windows 10版本 64位系统(32位的同学自己想办法哦),如下图所示:
5.安装jmeter
分别在本地和远程机器上安装jmeter,这里宏哥就不做详细介绍了,不知道的同学可以参考宏哥的这篇安装文章:https://www.cnblogs.com/du-hong/p/12894560.html。
6.配置
本地机器:Jmeter安装路径的bin下,编辑jmeter.properties文件,追加如下内容:
# Jmeter远程启动:Controller机配置,格式为:“IP1:port1,IP2:port2”,如下只配置了一台Agent;
remote_hosts=*.*.*.95:1029
远程机器:Jmeter安装路径的bin下,编辑jmeter.properties文件,追加如下内容:
# Jmeter远程启动:Agent机配置
server_port=1029
server.rmi.localport=1029
备注:若出现端口被占用,Windows上在dos框输入“netstat -ano”,查看端口使用情况,这里推荐使用新的端口;
7.脚本文件
宏哥为了演示,简单的录制了一个访问度娘的脚本文件,如下图所示:
8.启动
①本地机器:“运行”→“远程启动”,可以看到宏哥配置的远程机器的IP及端口,如下所示,选择这台机器;
②远程机器:
Jmeter安装在Windows平台上:cmd到dos中,进入Jmeter安装路径的bin目录下,执行“jmeter-server”
③查看本地结果树,如下图:
④查看远程cmd到dos中,进入Jmeter安装路径的bin目录下,执行“jmeter-server”的窗口,如下图所示:
至此,远程启动执行完毕。
9.小结
1、jmeter安装在Linux平台上:进入Jmeter安装路径的bin目录下,执行“./jmeter-server”;
否则会报如下错误:“Java.net.ConnectionException: Connection refused:connect”
2、同理如果Jmeter安装在Linux平台上:进入Jmeter安装路径的bin目录下,执行“./jmeter-server”;
否则会报如下错误:“Java.net.ConnectionException: Connection refused:connect”
3、Jmeter5.2.1,启动报错java.io.FileNotFoundException: rmi_keystore.jks
解决方法一:slave的
jmeter.properties
中,设置server.rmi.ssl.disable=true
原因:jmeter4.0以上的版本,默认启用RMI连接的安全通信,需要创建密钥库。所以将SSL禁用即可。解决方法二:手动生成秘钥和证书。执行
create-rmi-keystore.bat
(Windows适用)或create-rmi-keystore.sh
(Linux适用)
Jmeter(四十四) - 从入门到精通高级篇 - Jmeter远程启动(本地运行+远程运行)(详解教程)的更多相关文章
- Jmeter(四十八) - 从入门到精通高级篇 - Jmeter监控服务器性能(详解教程)
1.简介 JMeter是一款压力.接口等等的测试工具,Jmeter也可以像loadrunner一样监控服务器CPU.内存等性能参数,用来监控服务器资源使用情况,不过需要安装一些插件.JMeter正常自 ...
- Jmeter(四十九) - 从入门到精通高级篇 - jmeter使用监视器结果监控tomcat性能(详解教程)
1.简介 上一篇宏哥讲解了利用jmeter的插件来监控服务器资源,这一篇讲解分享如何使用jmeter的监视器结果监控tomcat性能. 2.准备工作 文章标题中提到jmeter和tomcat,那么只需 ...
- Jmeter(四十五) - 从入门到精通高级篇 - Jmeter之网页爬虫-上篇(详解教程)
1.简介 上大学的时候,第一次听同学说网页爬虫,当时比较幼稚和懵懂,觉得就是几只电子虫子爬在网页上在抓取东西.后来又听说写代码可以实现网页爬虫,宏哥感觉高大上,后来工作又听说,有的公司做爬虫被抓的新闻 ...
- Jmeter(四十六) - 从入门到精通高级篇 - Jmeter之网页图片爬虫-下篇(详解教程)
1.简介 上一篇介绍了爬取文章,这一篇宏哥就简单的介绍一下,如何爬取图片然后保存到本地电脑中.网上很多漂亮的壁纸或者是美女.妹子,想自己收藏一些,挨个保存太费时间,那你可以利用爬虫然后批量下载. 2. ...
- Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)
1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. ...
- Jmeter(四十二) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 -番外篇(详解教程)
1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻 ...
- Jmeter(五十四) - 从入门到精通高级篇 - 如何在linux系统下运行jmeter脚本 - 上篇(详解教程)
1.简介 上一篇宏哥已经介绍了如何在Linux系统中安装Jmeter,想必各位小伙伴都已经在Linux服务器或者虚拟机上已经实践并且都已经成功安装好了,那么今天宏哥就来介绍一下如何在Linux系统下运 ...
- Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)
1.简介 前边一篇文章介绍了如何生成测试报告,细心地小伙伴或者同学们可以看到宏哥启动Jmeter生成测试报告不是在gui页面操作的,而是在gui页面设置好保存以后,用命令行来生成测试报告的.这一篇宏哥 ...
- Jmeter(三) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程)
1.简介 上一篇中宏哥已经教你如何通过JMeter来创建一个测试计划(Test Plan),那么这一篇我们就将JMeter启动起来,创建一个测试计划(Test plan),然后宏哥给大家介绍一下测试计 ...
随机推荐
- 使用C# (.NET Core) 实现命令设计模式 (Command Pattern)
本文的概念内容来自深入浅出设计模式一书. 项目需求 有这样一个可编程的新型遥控器, 它有7个可编程插槽, 每个插槽可连接不同的家用电器设备. 每个插槽对应两个按钮: 开, 关(ON, OFF). 此外 ...
- HarmonyOS三方件开发指南(17)-BottomNavigationBar
目录: 1.引言 2.功能介绍 3.BottomNavigationBar使用指南 4.BottomNavigationBar开发指南 5.<HarmonyOS三方件开发指南>文章合集 引 ...
- Spring Boot demo系列(二):简单三层架构Web应用
2021.2.24 更新 1 概述 这是Spring Boot的第二个Demo,一个只有三层架构的极简Web应用,持久层使用的是MyBatis. 2 架构 一个最简单的Spring Boot Web应 ...
- (十七)VMware Harbor 垃圾清理
1. 在线垃圾清理 注意:从Harbor中删除镜像时不释放空间,垃圾收集是通过从清单中不再引用文件系统中删除blob来释放空间的任务. 注意:在执行垃圾收集时,Harbor将进入只读模式,并且禁止对d ...
- 【学习底层原理系列】重读spring源码3-加载beanDefinition的方法obtainFreshBeanFactory
obtainFreshBeanFactory()方法概述 定义BeanFactory,并加载以下两种bean的定义,装配到BeanFactory: 1.配置文件中定义的bean 2.通过<con ...
- C#入门到精通系列课程——第3章变量及运算符
◆本章内容 (1)变量是什么 (2)变量的声明及初始化 (3)常量 (4)运算符 (5)数据类型转换 (6)运算符优先级及结合性 (7)难点解答 ◆本章简述 很多人认为学习C#之前必须要学习C++,其 ...
- 按照自己的思路去研究Spring AOP源码【1】
目录 一个例子 Spring AOP 原理 从@EnableAspectJAutoProxy注解入手 什么时候会创建代理对象? 方法执行时怎么实现拦截的? 总结 问题 参考 一个例子 // 定义一个切 ...
- src/众测篇:oracle注入过滤-- , + - * /,case when ,select,from,decode等函数如何证明是注入?
(1)nullif: NULLIF:如果exp1和exp2相等则返回空(NULL),否则返回第一个值 真: 假: (2)nvl/nvl2 测试失败无法实现:)记录 (3)如果是oracle报错注入 ...
- C++介绍和class的介绍
课程介绍 程序设计II是程序设计I的延续,继续提高编程能力,并能掌握面向对象(Object Oriented Programming)的程序设计方法.所谓面向对象,指的是将具体的流程变得模块化.这可以 ...
- 技术分享|JavaScript的前世今生
目录 一.什么是JavaScript 二.JavaScript的功能 三.JavaScript可以做什么 四.JavaScript框架 五.HTML,CSS和JavaScript 六.JavaScri ...