NotSerializableException: RemoteThreadsListenerTestElement с JMeter 5 на JDK 8 - PullRequest
0 голосов
/ 06 ноября 2018

Я использую 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]

JMeter Script

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Похоже, что вы отправляете на неправильный порт, это настраивается , поэтому называйте IP с портом как

 remote_host=<slave_ip>:1099

По умолчанию JMeter использует стандартный порт RMI 1099.

На клиенте обновите свойство remote_hosts, чтобы включить новый удаленный хост: настройки порта

0 голосов
/ 06 ноября 2018

Сначала убедитесь, что вы используете одну и ту же версию 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...