Я запускаю JMeter 5.0 с OpenJDK8, но при попытке запустить его в режиме Master-Slave возникает ошибка. Ведомый запускается с использованием
./jmeter-server -Djava.rmi.server.hostname=<slave_ip>
и Мастер начинает использовать
./jmeter -n -t /home/user/test.jmx -R <slave_ip>
и я получаю следующую ошибку на главной машине:
Creating summariser <summary>
Created the tree successfully using /home/user/test.jmx
Configuring remote engine: <slave_ip>
Starting remote engines
Starting the test @ Tue Nov 06 10:34:00 EST 2018 (1541518440058)
Error in rconfigure() method java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.io.NotSerializableException: org.apache.jmeter.threads.RemoteThreadsListenerTestElement
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
Тестовый скрипт test.jmx - это просто GET на google.com, без использования каких-либо сторонних плагинов.
Я использую Ubuntu 16.04.4 LTS, и JMeter был получен на веб-сайте JMeter.
Кто-нибудь испытывал эту проблему и решил ее?
Примечание: я видел несколько сообщений, связанных с этим, но они устарели. а также решения не работали.
Редактировать 1: И Slave, и Master используют версию 5.0 r18409351. Я также пробовал запускать оба на 1 хосте, и у меня такая же ошибка.
Редактировать 2:
Посмотрев на jmeter.log, я заметил, что он пытается подключиться к localhost, хотя у меня был remote_host=<slave_ip> на jmeter.properties. я добавил
-Djava.rmi.server.hostname=<slave_ip> в командную строку Мастера. Теперь я получаю следующее исключение на jmeter.log
2018-11-06 16:20:12,963 INFO o.a.j.r.RmiUtils: Local IP address=<slave_ip>
2018-11-06 16:20:12,965 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2018-11-06 16:20:12,967 ERROR o.a.j.e.ConvertListeners: RemoteException occurred while replacing Remotable item.
java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
java.io.IOException: Could not bind to /<slave_ip> using port 0
at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:348) ~[?:1.8.0_181]
at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:254) ~[?:1.8.0_181]
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411) ~[?:1.8.0_181]
at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) ~[?:1.8.0_181]
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:236) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:383) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:346) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:225) ~[?:1.8.0_181]
at org.apache.jmeter.samplers.RemoteSampleListenerImpl.<init>(RemoteSampleListenerImpl.java:44) ~[ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.engine.ConvertListeners.addNode(ConvertListeners.java:78) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:976) [jorphan.jar:5.0 r1840935]
at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:135) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:132) [ApacheJMeter_core.jar:5.0 r1840935]
@ user7294900 Есть, у обоих версия 5.0 r1840935. Также я попытался запустить оба на одном хосте, и у меня была такая же проблема.
Вы можете поделиться своим планом тестирования? Я пробовал использовать простой план тестирования и распределенный тест, но не воспроизводю, поэтому должно быть какое-то условие. Также предоставьте jmeter.log и jmeter-server.log. Спасибо
@UBIKLOADPACK обновил вопрос
Спасибо, но ваша ссылка не работает, я получаю 404
@UBIKLOADPACK исправлен. извиняюсь. это была опечатка
Я обновил свой ответ. На данный момент я не могу протестировать ту же версию Java. Но трэвис jmeter работает с openjdk





Сначала убедитесь, что вы используете одну и ту же версию Java для клиента и сервера.
Используя ваш план тестирования, он работает для меня с Oracle JDK 8u161:
Для запуска сервера с IP 192.168.0.33:
./jmeter -Djava.rmi.server.hostname=192.168.0.33 -Dserver_port=5000 -s -j jmeter-server.log
На клиенте:
./jmeter -n -t /data/jmeter/testplan.jmx -R192.168.0.33:5000
Да, это одна и та же версия
Я запустил ./jmeter -n -t /data/jmeter/testplan.jmx -R<slave_ip>:1099, но у меня все еще есть Could not bind to /<slave_ip> using port 0
Кажется, вы отправляете не на тот порт, это настраиваемый, поэтому вызовите IP с портом как
remote_host=<slave_ip>:1099
By default, JMeter uses the standard RMI port 1099.
On the client, update the remote_hosts property to include the new remote host:port settings
Есть ли у ведомого точно такая же версия jmeter?