I have checked all setting on master and slave. All seems correct. When I start from host in jmeter. Getting following error :
Not sure if it is problem of ultimate thread group plugin or master/slave setting. If I do start from host with default jmeter test plan then it works fine.
I have not installed ultimate thread group on server. Should I install on server as well?
Yes you must install all plugins that are on jmeter controller on the jmeter server.
As you can see in error, there is a ClassNotFoundException happening.
Ultimate thread group plugin is missing on the JMeter-server.
You should install all the plugins in the server machines which are already on your master machines.
Related
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
Trying to follow https://linuxhowtoguide.blogspot.com/2018/02/how-to-setup-jenkins-slave-on-windows.html to setup Windows Jenkins slave. On that instruction, Windows Slave plugin is specified to be installed, but it is not available from plugin "Available" tab. Any idea? Should WMI Windows Agent be installed instead? But that is an agent plugin.
Many thanks!
I think you need this - https://plugins.jenkins.io/windows-slaves
The plugin name is "WMI Windows Agents" and Id is "windows-slave".
You need to make sure you Jenkins can reach this plugin URL.
Once the plugin is installed, a new launch type is available in the agent configuration. Once the agent configuration is saved, Jenkins will reconnect the agent(slave) using the plugin
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)
We are implementing CI for performance testing, As a part of this we have to run scripts from 3 different machines, I am facing an issue while stoping the Jmeter server in slave machines after the execution.
I am executing the shutdown.bat, stoptest.bat but no luck.
Please help me, How to stop the Jmeter server from the command prompt which is currently running.
Thanks in Advance.
Configure your jmeter.properties file like this server.exitaftertest=true. It will stop the JMeter-server after the test execution.
We have a Jenkins instance running on Ubuntu that has several slaves in different systems. One of them is a Windows 7 host, having jenkins slave instance configured as a service.
We have a problem that when that machine is rebooted, master Jenkins doesn't realize it's gone. It looks to be just fine in the nodes view. Then, when a build is issued that is supposed to use that slave it gets stuck. If that is stopped, the next build fails immediately
Caused by: java.util.concurrent.TimeoutException: Ping started at 1457016721684 hasn't completed by 1457016961684
... 2 more
[EnvInject] - [ERROR] - SEVERE ERROR occurs: channel is already closed
When the slave has started up and it tries to connect back to master, connection is refused, and in the logs there is an error saying connection with that name already exists:
Server didn't accept the handshake: xxx is already connected to this master. Rejecting this connection.
There is issue JENKINS-5055 which claims a fix was committed allowing the same JNLP slave to reconnect without getting rejected, apparently this commit, and according to changelog, it was introduced in version 1.396 (2011/02/02). We are however using version 1.639 and seeing this. Somebody else seems to be seeing it as well. By looking at current codebase, I see where the error is coming from, but don't see the fix done in Jenkins-5055.
Any ideas on resolving this?
Edit: also asked on jenkins user mailing list, but no responses.
We faced the same issue. Used https://wiki.jenkins-ci.org/display/JENKINS/slave-status as workaround
Reinstalling the slave on a Windows Server 2012 R2 machine shows no signs of this behavior, so it seems that either there was a mistake done during installation steps or this is something caused by using a workstation Windows version.
Regardless, here were the steps to get it working, assuming a brand new installation of Windows, with no network connectivity, and master instance using a self-signed certificate:
Install JRE on the machine. If you have 64-bit operating system, install both 32-bit and 64-bit, otherwise go with 32-bit. Download link here
Install .NET 3.5 on the machine. This is needed by the Jenkins service. You can follow the steps outlined by my other answer for this.
Install Jenkins using Windows installer (.zipped) to C:\Jenkins. It can be downloaded from here.
Check your installation is responding by navigating to http://localhost:8080 . In case of trouble, check for logs in the jenkins folder. If there is a port conflict, edit jenkins.xml and change the httpPort to something else.
From the Windows computer, navigate to your master jenkins and configure a new node there.
Start a slave agent using Java Launch Agent in configure -> node screen (you need to be still using your Windows slave computer)
You should see a visible window opening. From there, select File -> Install as a service. (details and screenshots) If you experience an error without proper explanation, confirm .NET 3.5 is properly installed. If you see "WMI.WmiException: AccessDenied", save the jnlp file locally and start it from administrator prompt or otherwise with elevated privileges (details).
From the Administrative tools -> Services, stop and disable the Jenkins service, and stop Jenkins Slave Agent but leave it on Automatic so it will start up when starting up the computer.
This is only relevant if you're using a self-signed or otherwise problematic certificate:
download the previously mentioned Java Launch Agent file (.jnlp file) again and save it to C:\jenkins
open c:\jenkins\jenkins-slave.xml to your editor
change it to refer to your local .jnlp file by changing jnlp url parameter (file:/C:/jenkins/jenkins-slave.jnlp)
add -noCertificateCheck to parameters
replace the -secret parameter with -auth "user:pass", since otherwise automatic url get parameters will be added which will mess finding the .jnlp file
Start the Jenkins Slave Agent service again
For problems with jenkins slave service, check out jenkins-slave.err.log. For Windows Server 2012 R2, you can get the functionality of tail by using Get-Content .\jenkins-slave.err.log -Wait -Tail 10 in Powershell prompt. For older versions of Powershell, leave out -Tail 10.