在分布式设置中安装JMeter插件



我们有一个分布式JMeter设置,包含1个客户端和3个服务器。当向客户端提交测试计划时,即使用任何JMeter插件,例如Arrival Thread Group,由于未安装插件,测试计划失败。

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

PluginsManagerCMD install-for-jmx <test-plan> 

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

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

问题:

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

  2. 我们能在客户端节点上获得测试计划所需的插件列表,并将该列表传达给服务器,以便在其末端安装吗?

也许我的食谱会对你有所帮助。我使用并行、rsync和最小的awc实例作为名为performance1-10和performancemaster的负载生成器。对所有需要的节点进行无密码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

最新更新