zoukankan      html  css  js  c++  java
  • jmeter的master远程运行和停止slave

      jmeter可以部署成master-slave或者叫client-server模式,一个master(client)可以同时控制多个slave(server)。

      在linux系统下,master(client)每开启一组slave(server)进行压测,就会在Linux下开启三个进程,如下图所示,java外的两个进程是守护进程,当java进程被kill,其他两个进程跟着殉葬

      同时会开启udp端口(比如下图的4445、4446),监听系统发出的指令(比如结束指令)

      问:当master(client)开启多组任务,比如user1使用master1连接slave1和slave2、user2使用master1连接的slave3和slave4进行压测的场景,如何向master1分别发送结束指令呢?

      答:使用jmeter自带的stoptest.sh和shutdown.sh脚本来结束。区分不同的用户user,使用参数端口。因为每组任务都会单独起一个端口,进行监听,接收系统本地127.0.0.1发出的结束指令。

      jmeter.properties里关于端口的配置,如图,默认从4445开始找一个不在使用的端口,直到端口4455为止,因此,默认可以起10个任务,当然这样看master的硬件配置,是否有足够的性能同时满足这么多任务的运行。

      再来看下stoptest.sh和shutdown.sh脚本的内容,很简单:去github上查看jmeter的源码,可以得知package org.apache.jmeter.util下存在ShutdownClient这个类,有main函数。因此可以直接java -cp的方式使用,然后这个类,接收两个参数,第二个参数就是“端口”

    stoptest.sh

    #   Run the Shutdown client to stop a non-GUI instance abruptly
    
    #   P1 = command port for JMeter instance (defaults to 4445)
    
    DIRNAME=`dirname $0`
    
    java -cp ${DIRNAME}/ApacheJMeter.jar org.apache.jmeter.util.ShutdownClient StopTestNow "$@"

    shutdown.sh

    #   Run the Shutdown client to stop a non-GUI instance gracefully
    
    #   P1 = command port for JMeter instance (defaults to 4445)
    
    DIRNAME=`dirname $0`
    
    java -cp ${DIRNAME}/ApacheJMeter.jar org.apache.jmeter.util.ShutdownClient ShutdownClient "$@"

    至此,一个master开启多组任务;对各个任务进行分别停止;两个事情搞定。

    1、sh jmeter.sh -n -t a.jmx -l b.jtl -j c.log -e -o report1 后台开启任务,任务自然结束或者手动停止后生成报告

    2、sh stoptest.sh 端口号 手动停止某个任务

  • 相关阅读:
    第3章 Activity的生命周期
    掌握jQuery插件开发,这篇文章就够了
    第22章 Master-Detail 用户界面
    JavaScript动画1-速度动画
    Compass学习指南
    Compass中导入Normalize
    Sass学习指南
    BASIC-2 01字串
    leetocode题解
    机器学习算法的sklearn实现
  • 原文地址:https://www.cnblogs.com/shengulong/p/8659646.html
Copyright © 2011-2022 走看看