How can I add a NonTestElement Proxy recording controller in a Jmeter project using Java api? I am trying to do it in THIS GITHUB PROJECT but it is not working. I am able to add a RecordingController, which is a container that stores the recorded items, but I am having trouble adding the non-test recording element to the test plan root element. When I try to add the Proxy controller, it appears as a regular target RecordingController, which is not my intention.
I am using Jmeter 4.0:
// this RecordingController works fine
RecordingController recordingController = new RecordingController();
recordingController.setName("Recordings");
recordingController.setProperty(TestElement.TEST_CLASS, RecordController.class.getName());
recordingController.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
// this non-test ProxyControl is the one i cant get working
ProxyControl proxyController = new ProxyControl();
proxyController.setName("Proxy Recorder");
proxyController.setProperty(TestElement.TEST_CLASS, ProxyControl.class.getName());
proxyController.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
ThreadGroup threadGroup = new ThreadGroup();
threadGroup.setName("Sample Thread Group");
....
TestPlan testPlan = new TestPlan("Create JMeter Script From Java Code");
testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement());
testPlanTree.add(testPlan);
testPlanTree.add(proxyController);
HashTree threadGroupHashTree = testPlanTree.add(testPlan, threadGroup);
threadGroupHashTree.add(recordingController);
NOTE: while I look for an answer, I verify this actually worked by opening the resulting .jmx project file (generated from this Java code; see link to my project) in Jmeter 4.0. If that doesn't work, then I don't consider this question answered.