zoukankan      html  css  js  c++  java
  • jmeter分布式压力测试实践+登录为例

    首先保证你的本地服务器是ios或linux系统,windows的暂时

    1、一张分布式压力的图解,如下

    准备:

    1、两台slave 

    2、一个master

    3、待测目标地址 http://XXX

    准备环境:linux环境,master如果可以最好有可视化电脑界面,便于jmx文件的随时修改,此处我的master是没有界面的

    2、文章参考:

    http://www.cnblogs.com/puresoul/p/4844539.html  

    3、开始分布式压力测试

    步骤一: 登录master

    前提:master上安装JDK和jmeter

    1)ssh 192.168.10.1  --我们假设master IP为192.168.10.1

    2)授权   chmod 600 /Users/Desktop/work/performance/ecs-ssh-key.pem

    3)登录 (master)    ssh -i /Users/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1

    --ecs-ssh-key.pem为存放在本地的登录授权证书

    4)完成

    步骤二:拷贝代码 login.jmx

    由于master没有配置界面,我需要在我本地电脑写好代码拷贝到master

    拷贝命令:

    scp -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/login.jmx  ~/Desktop/work/performance/jmx

    步骤三、配置两台slave

    前提:安装JDK 和jmeter到两台slaves

    1)连接slave

    ssh -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.0.1
    ssh -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.0.2

    2)两台slaves 启动jmeter bin目录下的jmeter-server文件,确保jmeter服务启动

    3)拷贝csv文件到slave

    jmx文件只需要拷贝到master,两台slave只需要拷贝user.csv文件(csv文件为200个用户登录的实际用户名、密码)

    两台slave上csv存放的文件路径需要保持一致,均放置在jmeter bin目录下

    步骤四:运行jmx

    方式1:修改脚本线程数运行的情况

    jmeter -JthreadCount=500 -n -t login.jmx -l result.jtl -e -o ResultReport

    方式2:直接运行整个jmx(推荐)

    ./jmeter -n -t /home/ec2-user/testFile/login.jmx -r -l /home/ec2-user/result/result.jtl

    4、controller配置slave

    打开master上Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.0.1:8089 192.168.0.2:8089,8089是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。

     5、测试报告

    以命令方式执行完jmeter脚本后,会生成jtl文件,需要将jtl转换成图标展示出来,便于查看测试报告

     方式1:

       1)

    ./jmeter -n -t /home/ec2-user/performanceTest/login.jmx -r -l /home/ec2-user/result/result.jtl

      2)

    ./jmeter -g result.jtl -e -o /home/tester/apache-jmeter-4.0/resultReport

     方式2:

    ./jmeter -n -t login.jmx -r -l result.jtl -e -o /home/tester/apache-jmeter-4.0/resultReport

    参数说明:

        -n : 非GUI模式下执行Jmeter
        -t : 执行测试文件所在的位置及文件名称
        -r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
        -l : 指定生成测试结果的保存文件, jtl 文件格式
        -e : 测试结束后,生成测试报告
        -o : 指定测试报告的存放位置
       ( -o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错)
     

    ps:每次运行完生成的测试报告需要删除,多次运行不能覆盖

    6、压缩测试报告拷贝到本机

    master上压缩测试结果:(如果master有可视化界面操作,则不需要这一步,直接可在master查阅)

    zip -q -r 500report.zip /home/ec2-user/performanceTest/ResultReport

    拷贝压缩结果到本地,查看测试结果图表:

    scp -i ~/Downloads/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/500report.zip ~/Desktop/work/performance/
    scp -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/950report.zip ~/Desktop/work/performance/

     

    命令:

    删除文件:
    rm -f 500report.zip --删除文件
    rm -rf 500report.zip --删除文件夹
    -r 向下递归,不管有多少级目录,一并删除
    -f 直接强行删除,没有任何提示

  • 相关阅读:
    一个简单的禁止鼠标滚轮事件处理
    模仿抽奖转盘,并且用cookie记录历史次数
    学习jquery
    使用var提升变量声明
    Django 自带密码加密,自定密码加密方式 及自定义验证方式
    kindEditor使用并防止xss攻击(day88)
    python二维码生成库(qrcode)简介和实例
    js原型的区别
    js中 this与that
    python单元测试之unittest框架使用总结
  • 原文地址:https://www.cnblogs.com/yoyoblogs/p/7575016.html
Copyright © 2011-2022 走看看