Unable to Execute Distributed Testing in JMeter 4.0 - performance

I have applied all the instructions to execute the distributed Testing for JMeter.
But When I run as "Remote Start-XXX.XXX.XXX.XXX"
Then I am getting "Exception creating connection: XXX.XXX.XXX.XXX; nested exception is: java.io.IOException: java.security.UnrecoverableKeyException: Cannot recover key".
Can anyone help me Why I am getting that exception?
Reference that I used: LINK

This is how I solve the same problem as yours. Have a try, hope this can help:
when answering the question What is your first and last name?, you'll have to reply with rmi which is a corresponding value with server.rmi.ssl.keystore.alias in jmeter.propertise. Remember do NOT enter any custom value if u have not changed the server.rmi.ssl.keystore.alias in jmeter.propertise when u are trying to create a keystore.

Given you use JMeter 4.0 additionally you need to follow steps from Setting Up SSL User Manual Chapter
Alternatively if you don't want secure RMI communication between master and slave(s) you can add the next line to user.properties file
server.rmi.ssl.disable=true
or pass it via -J command-line argument like:
jmeter -Jserver.rmi.ssl.disable=true
The change has to be done on all engines (master and all the slaves)
References:
Remote hosts and RMI configuration
Configuring JMeter

In JMeter 4.0 you need to generate a keystore that will be used in distributed testing.
Follow this tutorial instead:
http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html
Pay particular attention to:
https://jmeter.apache.org/usermanual/remote-test.html#setup_ssl

Related

Using SSHMon plugin with Jmeter- Plugin not capturing any stats

I have been working on Jmeter from quite sometime now and I have been trying to use Jmeter Plugin SSHMon , but I am stuck as even after configuring it completely it simply says "Waiting for samples" and does not render anything on the graph.
I am trying to execute the command on the Linux box and have passed all the relevant parameter for collecting the stats. But still I am not able to capture anything. Any help or pointer will be appreciated.
I also tried connecting the Linux box using Putty and executing the command and the command does work, but when I execute the test the Plugin does not capture anything
Please find the ScreenShot attached
In the majority of cases the answer lives in jmeter.log file, check it for any suspicious entries, if something is not working most probably there will be a cause identifier there. Also make sure to actually run your test as SSHMon is a Listener and relies on Sampler Results so if your test is not running - it will not show anything.
As an alternative you can use JMeter PerfMon Plugin which has EXEC metric so you can collect the same numbers, however PerfMon will require Server Agent to be up and running on the remote Linux system.
After a lot of trail and error I was able to get SSHMon working. Please find the solution below
Ok Guys, so its a lot tricky as you would expect. So I thought that installing the Perfmon Agent on the server made Jmeter collect the stats for SSHMon listner but there is a catch to it. To start off I will let you know that installing the Perfmon Agent on the servers and then using the plugin to collect the stats works smooth. You can definately use this option. But it requires for the Agent to be started everytime you want to run a test and if there are multiple servers you will have to restart on those server. Not sure if there is a way to automate the restart of the agent or to keep it running for a longer time. If you are lazy like me or you have installation restriction on the servers or hell bent on using SSHMon then what you need to do is stated below.
You should always start Jmeter with the command line argument --->
jmeter -H "Proxy" -P "Port" -u "UserName" -a "Password"
The arguments are self explanatory. Once you do that Jmeter will be launched, but wait its not done yet!!
When you start executing your test the command prompt in which you have started the Jmeter will prompt for Kerberos UserName [YourUsername]: you have to again Enter you username here, which you use to start Jmeter or login to you system. Followed by this it will prompt you to enter kerberos Password for your UserName: Enter Your Password and Voila!!
The thing is, it happens in the background so you never see what is happening on the Command Prompt you used to start Jmeter.
Please see below for more clarity.
Kerberos Username[UserName]: UserName Kerberos
Password for UserName: Password
I have attached the screen shot as well in the question as well as here showing the issue being resolved. Please refer "Solution ScreenShot". Cheers!!
Hope this helps Guys!! :)
Also please hit up for the answer if it helps you!! :)

How Jmeter handles LDAP Referral mechanism

I am trying to do a LDAP mod operation through Jmeter. Expected behavior - Jmeter would hit server A which in turn would hit server B. Actual modification operation would happen at server B. Server B would complete the operation and give response to server A which in turn would respond to Jmeter.
Now the issue is, Jmeter is always getting the "Referral" response message. However, manually we are able to change the password after hitting server A from different remote server.
Could you someone please suggest how to overcome this?
I am assuming this has been resolved. Just in case you are still wondering, #Rohan , my understanding is that you run jmeter on the command line:
$ jmeter -Jjava.naming.referral=true -n -t testplan.jmx -l log.jtl
JMeter won't have specific behaviour of its own. You will need to tell it to follow referrals by setting java.naming.referral property appropriately in the jndi.properties mechanism defined in the documentation for the JNDI LDAP provider, which you should already have in place for your application if you expect it to behave that way.

Jmeter on Windows 10(Master) is not receiving test results from Slave

I am performing remote distributed testing through JMeter on my windows machine as master (Windows 10) and amazon Linux as the slave. I have configured jmeter.properties with client.rmi.localport and server.rmi.localport on both.
All configurations are fine as I can connect and remote start my JMeter server.
But I am not able to see the test results on my master machine.
I could see the results on Windows 7 with same configurations in jmeter.properties.
Also, I saw one more process JMeterMenuBar: setRunning(true,127.0.0.1:****) & JMeterMenuBar: setRunning(false,127.0.0.1:****) on Windows 7 but can't see these on Windows 10.
Please resolve for this.
Being not enough telepathic unfortunately I cannot identify and fix your issue remotely. However here are few possible workarounds:
Copy JMeter and Java folders from Windows 7 to Windows 10 machine.
Enable extra debug logging on Windows 7, Windows 10 and remote JMeter engines by adding the next line to user.properties file:
log_level.jmeter=DEBUG
and compare the output in both cases
You can also try adding the next line to system.properties file
java.net.preferIPv4Stack=true
as Windows 10 might be using IPv6 addresses by default or it may be something due to dual stack clash
And finally, JMeter automatically removes response data from successful samplers, it means you won't be able to see anything apart pass/fail flag and some timings. If you need to see the response data as well - add the next line to user.properties file on remote engines:
mode=Standard
JMeter restart is required to pick any property change up
See Apache JMeter Properties Customization Guide for more information on JMeter properties and ways of working with them
Thanks for your help.
I had the logs enabled and after posting the question I found one of the java class which JMeter is invoking is corrupted and hence I am unable to see the response on Master.
I re-installed JAVA JDK and it worked fine.

Jmeter testing on multiple websites on the same server

I have a working script to login and get to one website on the webserver, what I need is how to get to the other 10 plus servers with Jmeter all at once to do a nice stress test on the websites and its interfaces.
Any help is greatly appreciated
I think that you need to use DNS Cache Manager available since JMeter 2.12
DNS Cache Manager allows each JMeter thread to resolve underlying IP address of the request endpoint on its own.
See The DNS Cache Manager: The Right Way To Test Load Balanced Apps guide for detailed explanation of background and configuration details.
This is pretty trivial using the CSV Data Set Config.
Let's assume you are using normal HTTP Request samplers and that these are already set up with a server and path. Let's say it is the server you want to change for each thread. Then you need to:
Create a text file with a different server you want to test on each line.
Add a CSV Data Config element to the top level.
Configure the CSV Data Config to use your text file and set the variable name of server.
In your samplers change the server name to ${server}.
You can use the same method to change the path and other details.

Warning in Jmeter log

im performancetesting a site with Jmeter that is on an internal environment. However we also have a company proxy which i have configured in the HTTP default request manager in Jmeter.
Now everything works fine, however i keep seeing these WARNINGS in the jmeter.log when im tailing at runtime.
Everytime a thread starts up i see:
2014/02/07 15:35:46 WARN - org.apache.http.client.protocol.RequestProxyAuthentication: NEGOTIATE authentication error: Invalid name provided (Mechanism level: Could not load configuration file C:\WINDOWS\krb5.ini (Het systeem kan het opgegeven bestand niet vinden))
2014/02/07 15:35:48 INFO - jmeter.threads.JMeterThread: Thread started: Mythread 1-4
Does anyone know what this means, and if it is going to cause any problems. Ive tried setting the proxy credentials in like every possible place but it doesnt seem to matter.
Regards,
Johan
You can ignore these messages unless you are testing application which uses Kerberos authentication. If you want it to go away - read below for explanation of what's happening and how to get rid of it.
The warning is for missing Kerberos configuration file in the default location. If you need to test application which assumes Kerberos login, you need to properly configure krb5.conf and jaas.conf files in /bin folder of your JMeter installation. If you're changing application module name in jaas.conf make sure that the same value is present in jmeter.properties or user.properties file as kerberos_jaas_application property. You can also specify the property during JMeter startup as -J parameter, i.e.
jmeter -Jkerberos_jaas_application=testapp -n -t myscript.jmx -l myscript.jtl
and make sure that following two system properties are set:
-Djava.security.krb5.conf=krb5.conf
-Djava.security.auth.login.config=jaas.conf
the paths given are relative to JMeter home folder, you might want to use full paths. See Apache JMeter Properties Customization Guide for more details on how to play with JMeter properties.
Also make sure that you set "Implementation" dropdown to HTTPClient4 in HTTP Request Defaults (or for each HTTP Sampler)
Hope it makes sense

Resources