给Testers看的Jmeter分布式压测教程

一名测试工程师的学习之路,所有博客链接已存放在该链接下YFF

Jemter分布式压测

    • 一、分布式压测原理
    • 二、环境搭建
        • 2.1 环境准备
        • 2.2 slave机器配置
        • 2.3 master机器配置
    • 三、脚本及执行
        • 3.1 参数化问题
        • 3.2 GUI启动测试
        • 3.3 命令行启动测试
    • 四、写在最后

一、分布式压测原理

  • Jemter分布式压测是,选择其中一台作为调度机(master),其他机器作为执行机(slave);当然一台机器也可以既做调度机,也做执行机。
  • 调度机执行脚本的时候,master将会jmx脚本分发到slave上,slave拿到脚本后以非GUI的形式开始执行。
  • slave执行完毕后将结果回传给master,并由master进行结果的汇总。

二、环境搭建

2.1 环境准备

  • master:Windows10,JMeter版本5.1.1,jdk版本1.8;
    在这里插入图片描述
  • slave:2台linux虚拟机(CentOS 7),JMeter版本与master一致,5.1.1,jdk版本1.8;在这里插入图片描述
  • 总结:slave上JDK和Jmeter版本尽量和master上保持一致。

2.2 slave机器配置

  • 关闭各slave机器上防火墙

    1
     systemctl stop firewalld

  • 关闭各slave机器上SSL配置。RMI的默认传输机制将使用SSL,SSL需要密钥和证书才能工作。解决方法有两种:一种是启动bin目录下的create-rmi-keystore脚本,另一种是不使用SSL。这里采用第二种。

    1
    2
    3
    修改bin目录下的jmeter.properties文件
    vim jmeter.properties
    server.rmi.ssl.disable=true

    进入bin目录下编辑文件
    在这里插入图片描述
    将注释去掉且值改为true
    在这里插入图片描述


  • 设置服务器主机IP

    1
    编辑bin目录下的jmeter-server文件,取消RMI_HOST_DEF的注释项,固定设置当前Linux主机查询到的IP。

    进入bin目录下编辑文件
    在这里插入图片描述
    取消注释且修改IP
    在这里插入图片描述


  • 启动Jemter服务

    1
    启动bin目录下的jmeter-server文件

    在这里插入图片描述


2.3 master机器配置

  • 修改配置文件

    1
    2
    打开bin目录下的jmeter.properties文件,修改remote_hosts
    的值。修改为两台salve机器的ip及端口。

    在这里插入图片描述


三、脚本及执行

3.1 参数化问题

  • 如果脚本中使用到参数化文件,需要将CSV参数化文件上传到各个salve机器上,且路径要相同,然后再脚本CSV文件路径这里配置对应的参数。
    在这里插入图片描述

3.2 GUI启动测试

  • 运行->远程启动。查看配置的salve机器IP
    在这里插入图片描述
  • 运行->远程启动所有。启动分布式压测
    在这里插入图片描述

3.3 命令行启动测试

  • 上面是使用GUI图形上去启动slave机器去运行压测,也可以直接通过命令行启动压测并生成报告。
    1
    jmeter -n -t G:\Test\1.1login_linux.jmx -l G:\Test\result\1.jtl -e -o G:\Test\html\1 -R 192.168.30.132:1099,192.168.30.130:1099
    1
    jmeter -n -t jmx脚本路径 -l jtl文件路径 -e -o 报告路径 -R salve的IP地址:端口,salve的IP地址:端口
  • 需要注意的是,执行命令中的jtl文件路径和报告路径需要是不存在,否则会出错
    在这里插入图片描述

四、写在最后

  • 搭建过程中遇到的一些错误,解决的参考链接

https://www.cnblogs.com/dwdw/p/10989457.html
https://www.jianshu.com/p/15dec063bd2a
https://blog.csdn.net/qq_30068487/article/details/80090041