性能测试工具 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.2CLASSPATH=$CLASSPATH:$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jarPATH=$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.jmxConfiguring remote engine: ***Configuring remote engine: ***Starting remote enginesStarting 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测试脚本有可能会提示拒绝连接的错误。

原文地址:https://www.cnblogs.com/weihc/p/12147395.html

时间: 2024-08-27 08:38:15

性能测试工具 jmeter 分布式压力测试实操的相关文章

jmeter分布式压力测试

有时候需要的虚拟用户数比较大,一个负载机的资源不足以支持,就需要多台机器共同生成负载.就是分布式压力测试. 分布式压测怎么做呢?有几点要求:一是有几台电脑与控制机在同一局域网内.也就是可以互相访问.二是压力机也要安装jmeter. 在主控机的jmeter的bin目录找到配置文件jmeter.properties.找到里面的remote_hosts部分,修改内容为:remote_hosts=xx,xx代表的是压力机的ip.如果是多个压力机,之间使用英文逗号分隔分隔. 一.修改apache-jmet

Jmeter分布式压力测试环境配置

在一般情况下一台服务器如果要做大量用户并发的压力测试是扛不住的,基本上jmeter都崩溃.现在我们借助Jmeter提供的Controller+Agent模式搭建一套分布式压力测试环境 角色 IP 操作系统 版本 Controller 192.168.10.103 Windows 10 5.1.1 Agent 192.168.10.210 CentOS 7 5.2.1 Agent 192.168.10.211 CentOS 7 5.2.1 注意:正常情况下,我们建议所有的jmeter的版本要一致,

【转】Jmeter分布式压力测试

安装 下载地址:http://jmeter.apache.org/download_jmeter.cgi 安装前提(因为jmeter依赖于Java所以必须先配置好java) 下载后解压: tar -xvzf apache-jmeter-3.1.tgz Jmeter参数 [html] view plain copy -h, --help print usage information and exit #打印帮助信息 -v, --version print the version informat

Jmeter 分布式压力测试

JMeter中进行分布式测试 作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误.不过,JMeter也可以像 LoadRunner 一样通过使用多台机器运行所谓的代理来分担负载产生器自身的压力,并借此来获取更大的并发用户数,我们只需手动配置一下即可. 1.在所有期望运行JMeter作为 负载产生器的机器上安装JMeter,并确定其中一台机器作为 控

JMeter软件测试工具介绍及压力测试基本教程

一.工具介绍 (一)简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.数据库.FTP 服务器, 等等.JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能.另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你

JMeter接口压力测试课程入门到高级实战教程(详情)

章节一压力测试课程介绍1.2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介:讲解课程安排,使用的Jmeter版本 讲课风格:涉及的组件,操作配置多,不会一次性讲解,会先讲部分,然后在后续操作中慢慢补充,更容易消化和理解 2.常用压力测试工具对比简介:目前用的常用测试工具对比1.loadrunner性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多 2.apache ab(单接口压测最方便) 模拟多线程并发请求,ab命令对发出负载的计算机要求很

JMeter接口压力测试课程入门到高级实战(目录)

章节一压力测试课程介绍1.2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介:讲解课程安排,使用的Jmeter版本2.常用压力测试工具对比简介:目前用的常用测试工具对比章节二 JMeter4.x基础知识讲解和压测实操3.Jmeter基本介绍和使用场景4.本地快速安装Jmeter4.x简介:GUI图形界面的安装1.需要安装JDK8.或者JDK9,JDK102.快速下载5.Jmeter目录文件讲解简介:讲解jmeter解压文件里面的各个目录,文件等6.Jmeter语言版本中英文切

如何用Jmeter做压力测试 --- 转

Jmeter是一个性能测试工具,同loadrunner类似,他功能较多,我们常用的功能是用jmeter模拟多浏览器对网站做压力测试.    下载jmeter地址 :http://jakarta.apache.org/我们一般的网站,在进入业务功能前先需登录,然后才能访问业务功能.下面介绍如何用jmeter登录系统再对主业务做压力测试.1 运行jmeter    2 左边树将出现测试计划.工作台两根节点.3 选择测试计划,按右键->添加->threads(users)线程组    线程组能设置以

利用jmeter进行压力测试

1.压力测试的简单讲解 2.压力测试的监控 3.压力问题的简单定位 4.jmeter进行压力测试 1.压力测试的简单讲解 1.什么时候进行压力测试. 基于接口的压力测试,在接口功能测试完成之后就可进行接口的压力测试.如果有接口的依赖关系,各个接口都要完成接口的功能测试之后,再行压力测试 基于业务多场景的综合压力测试,要在所有业务功能测试通过之后进行 2.压力测试的合理性 压力测试结果是否有效,还要看压力环境,举个例子: 测试环境和生产环境硬件配置没可比性,那么测试环境的压力测试毫无意义,测试报告