性能测试工具 jmeter 分布式压力测试实操
性能测试工具 jmeter 分布式压力测试实操
本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布式测试。
slave-1/slave-2/master配置好jmeter环境(以下操作在jdk版本1.8环境下进行的)
1.下载jmeter3.2
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-3.2.tgz
2.解压
tar xvf apache-jmeter-3.2.tgz
3.添加环境变量
vim /ect/profile
最后一行添加代码:
JMETER=/root/apache-jmeter-3.2
CLASSPATH=$CLASSPATH:$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar
PATH=$PATH:$JMETER/bin
运行以下命令修改立即生效:
source /etc/profile
查看版本是否配置成功:
jmeter -v
4.准备好自己的测试脚本jmx文件放在目录/apache-jmeter-3.2/test下
slave-1 / slave-2 启动jmeter-server
5.运行jmeter-server
进到目录/apache-jmeter-3.2/bin:
vim jmeter-server
添加以下代码:(****为每台server自己的ip):
RMI_HOST_DEF=-Djava.rmi.server.hostname=****
开启jmeter-server:
./jmeter-server运行成功的话会在控制台显示:
Created remote object: UnicastServerRef [liveRef: [endpoint:[***](local),objID:[***, ***]]]
master机器运行测试脚本
6.修改配置文件jmeter.properties
进入目录/apache-jmeter-3.2/bin:
vim jmeter.properties
大概1038行,添加以下代码:
jmeterengine.nongui.port=0
7.运行脚本,开始测试
测试脚本test.jmx,在目录/apache-jmeter-3.2/test下,新建文件夹report,用来保存结果:
mkdir report
运行以下命令(***为slave测试机器的ip,以逗号,间隔):
jmeter -n -t ws_test.jmx -R ***,*** -l test.jtl -e -o /apache-jmeter-3.2/test/report/
提示以下消息则表示成功开始测试:
Creating summariser <summary>
Created the tree successfully using test.jmx
Configuring remote engine: ***
Configuring remote engine: ***
Starting remote engines
Starting the test @ Sun Mar 04 11:23:31 CST 2018 (1520133811112)
Remote engines have been started此时slave机器控制台会提示:
Starting the test on host *** @ Sun Mar 04 11:23:32 CST 2018 (1520133812700)测试脚本运行结束master控制台会显示结果:
slave机器控制台会提示:
Finished the test on host *** @ Sun Mar 04 11:25:53 CST 2018 (1520133953286)至此测试已经完成。
8.查看测试结果报告
master 机器上运行:
python -m SimpleHTTPServer 8000
报告查看网址(***为该机器ip):http://***:8000/report/index.html
9.遇到的坑
在slave开启jmeter-server时,直接运行./jmeter-server,会提示错误
Server failed to start: java.rmi.RemoteException: Cannot start. *** is a loopback address.
An error occurred: Cannot start. *** is a loopback address.貌似是因为没有指定主机导致的,所以在jmeter-server中指定RMI_HOST_DEF写入hostname搞定了问题:
vim jmeter-server添加以下代码:(***为每台server自己的ip):
RMI_HOST_DEF=-Djava.rmi.server.hostname=***在master跑测试脚本时,会一直提示如下信息,导致测试一直跑不起来:
Waiting for possible shutdown message on port 4445解决方法:
进入目录/apache-jmeter-3.2/bin:vim jmeter.properties大概1038行,添加以下代码:
jmeterengine.nongui.port=0这个是用于监听shutdown message的,如果不需要,可以直接设置为0即可。
每台机器要在同一局域网下,最好操作系统保持一致(此次测试在linux下实现),不然运行master测试脚本有可能会提示拒绝连接的错误。
性能测试工具 jmeter 分布式压力测试实操的更多相关文章
- jmeter分布式压力测试实践+登录为例
1.一张分布式压力的图解,如下 准备: 1.两台slave 2.一个master 3.待测目标地址 http://XXX 准备环境:linux环境,master如果可以最好有可视化电脑界面,便于jmx ...
- linux上实现jmeter分布式压力测试(转)
摘要:最近根据公司工作的需求,学习了一些压力测试的知识,目前,公司使用的是jmeter进行压力测试.下面就记录下近期的学习.我想将这次的博文分成三个部分:1.开始测试前的准备(测试环境的搭建)2.在一 ...
- 【转】Jmeter分布式压力测试
安装 下载地址:http://jmeter.apache.org/download_jmeter.cgi 安装前提(因为jmeter依赖于Java所以必须先配置好java) 下载后解压: tar -x ...
- Jmeter 分布式压力测试
JMeter中进行分布式测试 作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心, ...
- Jmeter分布式压力测试
有时候,一台机器无法支持很多个虚拟用户并发,这时就会使用分布式测试来实现这个功能,jmeter是有提供这个功能的.要实现分布式测试,得在主从(agent和controler)机器的jmeter安装目录 ...
- jmeter分布式压力测试配置操作
前提准备条件:1.主控机一台为master,ip地址:10.8.88.1772.负载机一台为slave, ip地址:10.8.88.1193.主控机和负载机都安装一样的JDK环境和jmeter版本.5 ...
- Jmeter性能测试-分布式压力测试
作为一个测试行业的菜鸟,由于投身于一个小公司,包揽所有的测试.刚开始的功能测试到接口测试,稳定性测试,兼容性测试等,一般由于是小项目所以对于性能有所忽略,也没怎么涉及,公司接了个大项目,后期对于性能上 ...
- .net分布式压力测试工具(Beetle.DT)
肯定有人会问为什么会写这样一个开源工具?和现有的有什么差别?不过对于一个程序员来说写东西还真不需要理由的:),主要原因是工作有点闲(开玩笑),不过说实话一个程员怎可能会停止写代码呢(作为一个奔4的程序 ...
- 性能测试工具JMeter 基础(六)—— 测试元件: 线程组
线程组的定义: 线程组是测试计划执行的入口,所有的逻辑控制器和取样器都必须在线程组下,其他的元件根据位置的不同作用域是不同的. 线程组是每个线程都是独立运行测试脚本,一个线程组就等于一个用户,通过多个 ...
随机推荐
- a^b(取模运算)
a^b(sdtbu oj 1222) Description 对于任意两个正整数a,b(0 <= a, b < 10000)计算ab各位数字的和的各位数字的和的各位数字的和的各位数字的和. ...
- wget 快速下载 ftp 文件
GNU Wget 1.17.1,非交互式的网络文件下载工具. 用法: wget [选项]... [URL]... 长选项所必须的参数在使用短选项时也是必须的. 启动: -V, --version 显示 ...
- Vegas视频的音频叠加效果怎么实现,可以用其他软件吗
有时我们会用Vegas为某段影片配音,我们要怎么把配音和背景声融合在一起呢?想必马上会有人反应过来:让配音和背景声分别置于两条轨道上就好了.这当然是一个相当好的方式. 可是,如果我想要把两段音频合成一 ...
- 使用ES替代whoosh全文检索
目录 1.docker安装ES 1.拉取docker镜像 2.使用docker安装ES 3.在页面中测试 2.使用ES替代whoosh全文检索 2.1 在Django中修改搜索引擎为ES 2.2 命令 ...
- C++基础知识篇:C++ 运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运 ...
- webgl智慧楼宇发光效果算法系列之高斯模糊
webgl智慧楼宇发光效果算法系列之高斯模糊 如果使用过PS之类的图像处理软件,相信对于模糊滤镜不会陌生,图像处理软件提供了众多的模糊算法.高斯模糊是其中的一种. 在我们的智慧楼宇的项目中,要求对楼宇 ...
- gulp常用配置
由于项目中经常会使用到gulp,而每次配置大概都差不多,所以将配置记录一下 项目结构 ├─dist │ ├─assets │ ├─css │ ├─images │ └─js ├─node_module ...
- 为什么 redo log 具有 crash-safe 的能力,是 binlog 无法替代的?
昨天在复习 MySQL 日志相关的知识,学的东西过一段时间后就会遗忘,遗忘后再重新思考,往往会有新的收获.想到几个问题,把它记录下来. 为什么 redo log 具有 crash-safe 的能力,而 ...
- 3、Spring Cloud Rest工程创建(通过IDEA创建)
1.Rest微服务构建简介 (1).介绍 以Dept部门模块做一个微服务通用案例Consumer消费者(Client)通过REST调用Provider提供者(Server)提供的服务. (2).Myb ...
- Linux驱动模块00
一.驱动基础 1.什么是驱动 能够通过软件操作硬件的这份程序就是驱动 2.Linux驱动和ARM裸机驱动的区别 1)Linux设备驱动工作时依赖于Linux内核, ARM裸机驱动不依赖于Linux内核 ...