Search code examples
jmeterperformance-testingjmeter-3.2

How to send Included Components in JMeter in remote (distributed) mode


I've got JMeter script which contains Include Controllers and I want to run my test in distributed mode. But I'm facing problem that JMeter slaves (remote nodes) can't find those elements which I want to include.

 INFO o.a.j.c.IncludeController: loadIncludedElements -- try to load included module: /opt/jenkins/workspace/_start_jmeter_server_NFT/apache-jmeter-3.2/bin/../common_test_components/debug-component.jmx
 INFO o.a.j.c.IncludeController: loadIncludedElements -failed for: /opt/jenkins/workspace/_start_jmeter_server_NFT/apache-jmeter-3.2/bin/../common_test_components/debug-component.jmx
 INFO o.a.j.c.IncludeController: loadIncludedElements -Attempting to read it from: /opt/jenkins/workspace/_start_jmeter_server_NFT/apache-jmeter-3.2/bin/./../common_test_components/debug-component.jmx
 ERROR o.a.j.c.IncludeController: Include Controller 'common component' can't load '../common_test_components/debug-component.jmx' - see log for details

Does that mean I would need to copy my component 'manually' the same way as data resources?


Solution

  • Yes, Any test dependency needs to be present in all the slave machines to run your test.

    Manually copying these files would be annoying. So I would suggest you to go with docker where you package the entire environment with all the test dependencies as an Image. Then you just create a container from the image on each slave.

    Please check here for more information.

    http://www.testautomationguru.com/jmeter-distributed-load-testing-using-docker/