【问题标题】:Install JMeter Plugins in distributed setup在分布式设置中安装 JMeter 插件
【发布时间】:2020-08-06 10:40:35
【问题描述】:

我们有一个带有 1 个客户端和 3 个服务器的分布式 JMeter 设置。在向客户端提交测试计划时,即使用任何 JMeter 插件,例如。到达线程组,由于未安装插件而失败。

我们使用 JMeter 插件管理器 cmd 从测试计划 (jmx) 安装插件:

 PluginsManagerCMD install-for-jmx <test-plan> 

但是这会在客户端上安装插件,而在执行测试时我们会从所有服务器上收到以下错误(因为插件没有安装在它们上)-

rconfigure() 方法 java.rmi.ServerException 出错:RemoteException 在服务器线程中发生;嵌套异常是: java.rmi.UnmarshalException:解组参数错误;嵌套异常是: java.lang.ClassNotFoundException: com.blazemeter.jmeter.threads.arrivals.ArrivalsThreadGroup(无安全管理器:RMI 类加载器已禁用)

问题:

  1. 如何从测试计划以自动化方式(从 cmd,类似于 jmeter 客户端)在服务器上安装插件?

  2. 我们能否在客户端节点获取测试计划所需的插件列表并将该列表传送到服务器以在其末端安装?

【问题讨论】:

    标签: jmeter jmeter-plugins jmeter-5.0 jmeter-4.0


    【解决方案1】:

    也许我的食谱会对你有所帮助。我使用并行、rsync 和最小的 awc 实例作为负载生成器,名为 performance1-10 和 performance-master。对所有需要的节点进行无密码 ssh 访问。替换你的名字

    aws ec2 describe-instances --output text --filters 'Name=tag:Name,Values=performance*' 'Name=instance-state-name,Values=running' --query 'Reservations[*].Instances[*].{Name:Tags[?Key==`Name`]|[0].Value,PublicIpAddress:PublicIpAddress} | sort_by(@, &[0].Name) | [*][*].PublicIpAddress'  > ips
    head -n -1 ips > ipswomaster #check!
    cat ips | parallel -j20 ssh-keyscan -H {} >> ~/.ssh/known_hosts
    parallel -j20 --tag --nonall --slf ips uptime
    # for first time: parallel -j20 --tag --nonall --slf ips sudo mkdir /opt/perf_test
    parallel -j20 --tag --nonall --slf ips sudo chown -R yourname:yourname /opt/perf_test
    cat ips | parallel -j20 rsync -arvzu /opt/perf_test/ {}:/opt/perf_test
    parallel -j20 --tag --nonall --slf ipswomaster "screen -dmS yourname bash -c 'cd /opt/perf_test; rm *.log; JVM_ARGS=\"-Xms512m -Xmx512m\" /opt/perf_test/apache-jmeter/bin/jmeter-server; exec bash'"
    
    # on master node
    screen -R yourname
    cd /opt/perf_test
    STROJE="";while read -r l; do STROJE="$STROJE$l:1099,"; done < ipswomaster;rm *.log; JVM_ARGS="-Xms512m -Xmx512m" /opt/perf_test/apache-jmeter/bin/jmeter -R"${STROJE::-1}" -n -t test.jmx
    
    # stop test on master node
    ctrl+a ctrl+c #create new screen tab
    cd /opt/perf_test/apache-jmeter/bin/
    ./stoptest.sh
    
    # java update (if needed)
    parallel -j20 --tag --nonall --slf ips java -version
    parallel -j20 --tag --nonall --slf ips sudo apt install -y openjdk-8-jdk-headless
    parallel -j20 --tag --nonall --slf ips update-java-alternatives --list | sort
    parallel -j20 --tag --nonall --slf ips sudo update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64
    parallel -j20 --tag --nonall --slf ips java -version | sort
    

    【讨论】:

    • 感谢@lojza 提供有用的见解。可能正如您所提到的,这意味着我们必须自己通过一些脚本来处理它,而这并不是 JMeter 所隐含的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2018-11-03
    • 2010-11-29
    相关资源
    最近更新 更多