use of org.apache.jmeter.gui.tree.JMeterTreeNode in project jmeter by apache.
the class EnableComponent method toggleComponents.
private void toggleComponents(JMeterTreeNode[] nodes) {
GuiPackage pack = GuiPackage.getInstance();
for (JMeterTreeNode node : nodes) {
boolean enable = !node.isEnabled();
node.setEnabled(enable);
pack.getGui(node.getTestElement()).setEnabled(enable);
}
}
use of org.apache.jmeter.gui.tree.JMeterTreeNode in project jmeter by apache.
the class EnableComponent method enableComponents.
private void enableComponents(JMeterTreeNode[] nodes, boolean enable) {
GuiPackage pack = GuiPackage.getInstance();
for (JMeterTreeNode node : nodes) {
node.setEnabled(enable);
pack.getGui(node.getTestElement()).setEnabled(enable);
}
}
use of org.apache.jmeter.gui.tree.JMeterTreeNode in project jmeter by apache.
the class JMeterTreeNodeTransferable method getTransferData.
@Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if (!isDataFlavorSupported(flavor)) {
throw new UnsupportedFlavorException(flavor);
}
if (data != null) {
ObjectInput ois = null;
try {
ois = new ObjectInputStream(new ByteArrayInputStream(data));
JMeterTreeNode[] nodes = (JMeterTreeNode[]) ois.readObject();
return nodes;
} catch (ClassNotFoundException cnfe) {
throw new IOException("Failed to read object stream.", cnfe);
} finally {
if (ois != null) {
try {
ois.close();
} catch (Exception e) {
// NOOP
}
}
}
}
return null;
}
use of org.apache.jmeter.gui.tree.JMeterTreeNode in project jmeter by apache.
the class JMeter method runNonGui.
// run test in batch mode
private void runNonGui(String testFile, String logFile, boolean remoteStart, String remoteHostsString, boolean generateReportDashboard) {
try {
File f = new File(testFile);
if (!f.exists() || !f.isFile()) {
println("Could not open " + testFile);
return;
}
FileServer.getFileServer().setBaseForScript(f);
HashTree tree = SaveService.loadTree(f);
// Deliberate use of deprecated ctor
@SuppressWarnings("deprecation") JMeterTreeModel // Create non-GUI version to avoid headless problems
treeModel = new JMeterTreeModel(new Object());
JMeterTreeNode root = (JMeterTreeNode) treeModel.getRoot();
treeModel.addSubTree(tree, root);
// Hack to resolve ModuleControllers in non GUI mode
SearchByClass<ReplaceableController> replaceableControllers = new SearchByClass<>(ReplaceableController.class);
tree.traverse(replaceableControllers);
Collection<ReplaceableController> replaceableControllersRes = replaceableControllers.getSearchResults();
for (ReplaceableController replaceableController : replaceableControllersRes) {
replaceableController.resolveReplacementSubTree(root);
}
// Remove the disabled items
// For GUI runs this is done in Start.java
convertSubTree(tree);
if (deleteResultFile) {
SearchByClass<ResultCollector> resultListeners = new SearchByClass<>(ResultCollector.class);
tree.traverse(resultListeners);
Iterator<ResultCollector> irc = resultListeners.getSearchResults().iterator();
while (irc.hasNext()) {
ResultCollector rc = irc.next();
File resultFile = new File(rc.getFilename());
if (resultFile.exists()) {
resultFile.delete();
}
}
}
Summariser summer = null;
//$NON-NLS-1$
String summariserName = JMeterUtils.getPropDefault("summariser.name", "");
if (summariserName.length() > 0) {
log.info("Creating summariser <{}>", summariserName);
println("Creating summariser <" + summariserName + ">");
summer = new Summariser(summariserName);
}
ReportGenerator reportGenerator = null;
if (logFile != null) {
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(logFile);
tree.add(tree.getArray()[0], logger);
if (generateReportDashboard) {
reportGenerator = new ReportGenerator(logFile, logger);
}
} else {
// only add Summariser if it can not be shared with the ResultCollector
if (summer != null) {
tree.add(tree.getArray()[0], summer);
}
}
// Used for remote notification of threads start/stop,see BUG 54152
// Summariser uses this feature to compute correctly number of threads
// when NON GUI mode is used
tree.add(tree.getArray()[0], new RemoteThreadsListenerTestElement());
List<JMeterEngine> engines = new LinkedList<>();
tree.add(tree.getArray()[0], new ListenToTest(remoteStart && remoteStop ? engines : null, reportGenerator));
println("Created the tree successfully using " + testFile);
if (!remoteStart) {
JMeterEngine engine = new StandardJMeterEngine();
engine.configure(tree);
long now = System.currentTimeMillis();
println("Starting the test @ " + new Date(now) + " (" + now + ")");
engine.runTest();
engines.add(engine);
} else {
//$NON-NLS-1$
java.util.StringTokenizer st = new java.util.StringTokenizer(remoteHostsString, ",");
List<String> hosts = new LinkedList<>();
while (st.hasMoreElements()) {
hosts.add((String) st.nextElement());
}
DistributedRunner distributedRunner = new DistributedRunner(this.remoteProps);
// NOSONAR
distributedRunner.setStdout(System.out);
// NOSONAR
distributedRunner.setStdErr(System.err);
distributedRunner.init(hosts, tree);
engines.addAll(distributedRunner.getEngines());
distributedRunner.start();
}
startUdpDdaemon(engines);
} catch (Exception e) {
//NOSONAR
System.out.println("Error in NonGUIDriver " + e.toString());
log.error("Error in NonGUIDriver", e);
}
}
use of org.apache.jmeter.gui.tree.JMeterTreeNode in project jmeter by apache.
the class TestSave method testTreeConversion.
@Test
public void testTreeConversion() throws Exception {
HashTree tree = new ListedHashTree();
JMeterTreeNode root = new JMeterTreeNode(new Arguments(), null);
tree.add(root, root);
tree.getTree(root).add(root, root);
save.convertSubTree(tree);
assertEquals(tree.getArray()[0].getClass().getName(), root.getTestElement().getClass().getName());
tree = tree.getTree(tree.getArray()[0]);
assertEquals(tree.getArray()[0].getClass().getName(), root.getTestElement().getClass().getName());
assertEquals(tree.getTree(tree.getArray()[0]).getArray()[0].getClass().getName(), root.getTestElement().getClass().getName());
}
Aggregations