How to run JMeter Webdriver samplers on a remote machine - jmeter

I am trying to run JMeter Webdriver samplers in IE on a remote machine. I have changed remote_hosts to the IP address of the remote machine. JMeter server on the remote machine is also started. When I run the tests from the JMeter GUI on the local machine (Run->Remote Start menu) I can see the command line window in remote machine showing
"Started the test..."
and immediately
"Finished the test..."
So the test runs but nothing actually happens.
I must be missing some configuration.
Can someone please help?

You need to install the same Selenium/WebDriver Support plugin to the remote slave(s). This can be done either by copying the whole JMeter installation to the slave host(s) or using JMeter Plugins Manager on each slave.
You need to download Internet Explorer Driver binary and put it to the same location as on the master host.
In case of any problems check jmeter-server.log file on remote slave - normally it should contain the root cause (or clue on what is wrong)

Related

JMeter plugin not working with jmeter-server

I have a test suite that uses the Webdriver Sampler plugin (https://jmeter-plugins.org/wiki/WebDriverSampler/) configured with Chromedriver. If I run my tests in "regular" non-gui mode the plugin works, i.e. starts the chromedriver and performs the test script.
When I try to run the test in distributed mode, the chromedriver doesn't seem to start, and no errors are found in logs.
I've tried to run the tests from my master node targeting the slave node, as well as running them from the slave node itself (targeting the running jmeter-server that is running on the slave).
Running tests without the above plugin works (e.g. running a HTTP-request based test suite from master targeting the slave)
Do I have to configure the plugin for jmeter-server too somehow?
You need to:
Install WebDriver Sampler plugin to all slave machines (jmeter-servers) using JMeter Plugins Manager
Install chromedriver binary to all slave machines at the same place
Make sure that Chrome browser is installed at all slaves and it's in operating system PATH
When you run JMeter test in distributed mode the master machine transfers only .jmx test script to slaves and collects results from them, any other extra files like:
plugins
CSV files used for parameterization
properties files
etc.
should be copied over from the master machine manually or using a script
It turns out that the plugin actually worked, but in order for chromedriver to run properly a display variable has to be set on each slave node.
Install xvfb
run commands:
Xvfb :1 -screen 5 1024x768x8 &
export DISPLAY=:1.5
As described in: Running Chrome WebDriver on a linux server with no display

JMeter Distributed Slave remote start error

while running J-Meter distributed test on slave machine with single slave user, i am getting below ssl certificate error after selecting 'Remote Start' with slave IP address under 'Run' Menu in master machine.My master and slave machine have Jmeter 5.2 version, connected with same network .
i did below setting before running remote start.
Slave Machine:- server.rmi.ssl.disable =true (commented this property ) and run J-Meter -server Service bat file in slave machine
Master Machine: mention slave ip address in' remote_hosts'  for jmeter.properties and save it and run remote start with slave IP address from master machine
Could you please assist me for the same ?
Thanks
Amit G
The error means that JMeter master cannot securely connect to the slave, most probably you made a typo or did something wrong, like commented the property while it needs to be uncommented
If you need secure communication between master and slave(s) follow steps from Setting up SSL chapter of the Remote Testing chapter of the JMeter User Manual
If you don't need the secure communication add the next line to user.properties file (lives in "bin" folder of your JMeter installation)
server.rmi.ssl.disable=true
Make sure that the property doesn't have # at the beginning and there are no whitespaces at the beginning/end of the line
Make sure to restart JMeter to pick up the property
This has to be done on JMeter master and all the slaves

execute a Linux command on a EC2 instance using Jmeter ssh sampler

I’m trying to execute a Linux command from my local windows server to remote EC2 instance using Jmeter ssh sampler plug in ,what is the way to connect to ec2 with my private key file and send the command?
Follow next simple steps:
From JMeter SSH Sampler Releases page:
Download latest version of ApacheJMeter_ssh-x.x.x.jar and drop it to /lib/ext folder of your JMeter installation
Download jsch-x.x.x.jar and drop it to /lib folder of your JMeter installation
Restart JMeter to pick the jars up
Add SSH Command Sampler to your Test Plan - there will be "Client certificate" input section where you can specify private key and password if needed
See How to Run External Commands and Programs Locally and Remotely from JMeter guide for more detailed information on the topic.

JMeter freezes when you run the test from remote server

On my remote host I am running jmeter server
./jmeter-server
I have kicked the jmeter from my local machine using this command
./jmeter -Jremote_hosts=Remote Host IP
GUI Pops up
Open my test.jmx and Run->RemoteHost->RemoteHostIP
At this time, jmeter freezes, I was unable to do much after that
my test had 1 thread, 60secs ramp, run 1 time
Any idea why is it frozen and I am not be see any test results. I do not have any listeners except "View Results Tree"
I faced the same issue. In my case, it was due to the firewall (ufw on ubuntu). After stopping the firewall I was able to run the tests normally.

Remotely running "vmrun command" on server machine from jenkins

I have windows 7_x64 Virtual Machine on Server machine running on Windows Server 2008 R2. I want to run this VM from jenkins (CI tool which executes batch file, running on same server).
I am using vmrun utility to do so.
When i run
vmrun -T ws -gu *** -gp *** start "vmx file path.vmx"
this executes fine on server command prompt (locally). but when i try to exceute the same from any of the client machine (by visiting jenkins site) I get
Error: There was an error in communication
After some troubleshooting, I can say vmrun command is not responding whenever it is evoked remotely. but it is confusing me, because I have jenkins which is running those commands is installed on same server. i am just running job from thin client. how does that make any difference?
Could anyone help me troubleshooting this issue?
Thanks!
For reference:
*Server machine(host): Windows Server 2008 R2
*Virtual machine(guest): Windows 7 x64
*Jenkins : Installed on same server (host)
*client : remote windows machine, accesses the jenkins instance from browser and triggers the job
*problem/error : vmrun commands dont execute.
Jenkins does not execute anything on "client" (i.e. the machine with the browser from which you accessed Jenkins instance). Jenkins will only execute anything on Master (what you called "server machine") or Slave nodes.
Now, there can be several differences between running the command from your local command prompt (on server) and through Jenkins. The primary difference is that Jenkins runs under a separate session, usually under a separate user, which may have different permissions, however that depends on how you have installed and configured the Jenkins session.
To identify if there are any Environment variable differences, type set on your local command prompt, and then execute Jenkins with just set in the build step. Compare the two. Other than Jenkins specific variables, everything else should be same.
Also, verify that your Jenkins user (the one running the service) has permissions to do whatever your are doing.

Resources