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?
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/