StandardJMeterEngine jm = new StandardJMeterEngine(); hashTree.add("httpSampler", httpSampler); jm.configure(hashTree); jm.run();
protected void stopTest() { if (stopTries > 30) { throw new RuntimeException("More than 30 seconds - stopping by exception"); } if (lastStopTry == time) { return; } log.info("No further RPS schedule, asking threads to stop..."); lastStopTry = time; stopTries++; if (stopTries > 10) { log.info("Tries more than 10, stop it NOW!"); StandardJMeterEngine.stopEngineNow(); } else if (stopTries > 5) { log.info("Tries more than 5, stop it!"); StandardJMeterEngine.stopEngine(); } else { JMeterContextService.getContext().getEngine().askThreadsToStop(); } }
FileInputStream in = new FileInputStream(testPlanPath); HashTree testPlanTree = SaveService.loadTree(in); in.close(); StandardJMeterEngine jmeter = new StandardJMeterEngine(); jmeter.configure(testPlanTree); jmeter.runTest();
protected void stopTest() { if (stopTries > 30) { throw new IllegalStateException("More than 30 retries - stopping with exception"); } if (lastStopTry == time) { return; } log.info("No further RPS schedule, asking threads to stop..."); lastStopTry = time; stopTries++; if (stopTries > 10) { log.info("Tries more than 10, stopping engine NOW!"); StandardJMeterEngine.stopEngineNow(); } else if (stopTries > 5) { log.info("Tries more than 5, shutting down engine!"); StandardJMeterEngine.stopEngine(); } else if (stopTries > 3) { AbstractThreadGroup threadGroup = JMeterContextService.getContext().getThreadGroup(); log.info("Tries more than 3, hard stopping threads of Thread Group : {}", threadGroup.getName()); threadGroup.tellThreadsToStop(); } else { AbstractThreadGroup threadGroup = JMeterContextService.getContext().getThreadGroup(); log.info("Stopping gracefuly threads of Thread Group : {}", threadGroup.getName()); threadGroup.stop(); } }
JMeterUtils.loadJMeterProperties("/path/to/jmeter.properties"); JMeterUtils.setJMeterHome("/path/to/jmeter"); JMeterUtils.initLogging(); JMeterUtils.initLocale(); SaveService.loadProperties(); StandardJMeterEngine jmeter = new StandardJMeterEngine(); HashTree testPlanTree = SaveService.loadTree(new File("/path/to/test.jmx")); JMeterTreeModel treeModel = new JMeterTreeModel(new Object()); JMeterTreeNode root = (JMeterTreeNode) treeModel.getRoot(); treeModel.addSubTree(testPlanTree, root); SearchByClass<ThreadGroup> threadGroups = new SearchByClass<>(ThreadGroup.class); testPlanTree.traverse(threadGroups); Collection<ThreadGroup> threadGroupsRes = threadGroups.getSearchResults(); for (ThreadGroup threadGroup : threadGroupsRes) { System.out.println(threadGroup.getProperty("ThreadGroup.num_threads")); }
log.info("Stopping test"); GuiPackage.getInstance().getMainFrame().showStoppingMessage(""); engine.stopTest(); log.info("Shutting test down"); GuiPackage.getInstance().getMainFrame().showStoppingMessage(""); engine.askThreadsToStop();
/** * Clean shutdown of test, which means wait for end of current running samplers */ private void shutdownTest() { running = false; log.info("Shutdown Test detected by thread: {}", threadName); if (engine != null) { engine.askThreadsToStop(); } }
@Override public void handleSampleResults(List<SampleResult> list, BackendListenerContext backendListenerContext) { if (isInterruptedThroughUI) { return; } accumulator.addAll(list); JSONObject data = JSONConverter.convertToJSON(accumulator, list); int counter = 0; while (!apiClient.isTestStarted() && counter < 3) { log.debug("Waiting for test starting"); makeDelay(); counter++; } try { apiClient.sendOnlineData(data); } catch (JMeterStopTestException ex) { isInterruptedThroughUI = true; StandardJMeterEngine.stopEngineNow(); } catch (IOException e) { log.warn("Failed to send data: " + data, e); } makeDelay(); }
public static void stopEngine() { if (engine != null) { // May be null if called from Unit test engine.stopTest(false); } }
private void stopTest() { stopTries++; if (JMeter.isNonGUI()) { log.info("Stopping JMeter via UDP call"); stopTestViaUDP("StopTestNow"); } else { if (stopTries > 10) { log.info("Tries more than 10, stop it NOW!"); StandardJMeterEngine.stopEngineNow(); } else if (stopTries > 5) { log.info("Tries more than 5, stop it!"); StandardJMeterEngine.stopEngine(); } else { JMeterContextService.getContext().getEngine().askThreadsToStop(); } } }
engine = new StandardJMeterEngine(); engine.configure(clonedTree); try { engine.runTest(); } catch (JMeterEngineException e) { JOptionPane.showMessageDialog(gui.getMainFrame(), e.getMessage(),
private HashTree loadJMX(File file) throws Exception { HashTree tree = SaveService.loadTree(file); // unfortunately core JMeter code does not throw exception, we may only guess... if (tree == null) { throw new TestPlanBrokenException("There was problems loading test plan. Please investigate error messages above."); } JMeter.convertSubTree(tree); // Remove the disabled items JMeterEngine engine = new StandardJMeterEngine(); engine.configure(tree); return tree; }
log.info("Stopping all threads now from element {}", getName()); context.getEngine().stopTest(); } else { if(log.isInfoEnabled()) { log.info("Stopping all threads from element {}", getName()); context.getEngine().askThreadsToStop();
} else { log.info("No further matches found, stopping test"); context.getEngine().askThreadsToStop();
/** * Stop Test Now */ @Override public synchronized void stopTest() { stopTest(true); }
private void stopTest() { stopTries++; if (JMeter.isNonGUI()) { log.info("Stopping JMeter via UDP call"); stopTestViaUDP("StopTestNow"); } else { if (stopTries > 10) { log.info("Tries more than 10, stop it NOW!"); StandardJMeterEngine.stopEngineNow(); } else if (stopTries > 5) { log.info("Tries more than 5, stop it!"); StandardJMeterEngine.stopEngine(); } else { JMeterContextService.getContext().getEngine().askThreadsToStop(); } } }
public void run() throws IOException { Files.createDirectories(outdir); // save generated test plan to JMeter's .jmx file format File jmxFile = outdir.resolve(buildOutputFileName() + ".jmx").toFile(); SaveService.saveTree(testPlanTree, new FileOutputStream(jmxFile)); StandardJMeterEngine jmeter; jmeter = new StandardJMeterEngine(); // Run Test Plan jmeter.configure(testPlanTree); jmeter.run(); ByteArrayOutputStream stream = new ByteArrayOutputStream(); try (PrintStream out = new PrintStream(stream)) { printResults(jmxFile, out); } System.out.println(stream.toString()); try (FileOutputStream fileOutputStream = new FileOutputStream(outdir.resolve("results.txt").toFile())) { stream.writeTo(fileOutputStream); } }
private HashTree loadJMX(InputStream reader) throws Exception { HashTree tree = SaveService.loadTree(reader); // unfortunately core JMeter code does not throw exception, we may only guess... if (tree == null) { throw new TestPlanBrokenException("There was problems loading test plan. Please investigate error messages above."); } JMeter.convertSubTree(tree); // Remove the disabled items JMeterEngine engine = new StandardJMeterEngine(); engine.configure(tree); return tree; }
public static void stopEngineNow() { if (engine != null) {// May be null if called from Unit test engine.stopTest(true); } }
//JMeter Home String jmeterHome = "c:/apps/jmeter"; // JMeter Engine StandardJMeterEngine jmeter = new StandardJMeterEngine(); // Initialize Properties, logging, locale, etc. JMeterUtils.loadJMeterProperties(jmeterHome + "bin/jmeter.properties"); JMeterUtils.setJMeterHome(jmeterHome); JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level JMeterUtils.initLocale(); // Initialize JMeter SaveService SaveService.loadProperties(); // Load existing .jmx Test Plan HashTree testPlanTree = SaveService.loadTree(new File(jmeterHome + "bin/test.jmx")); // Remove disabled test elements JMeter.convertSubTree(testPlanTree); // Add summariser Summariser summer = null; String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary"); if (summariserName.length() > 0) { summer = new Summariser(summariserName); } // Store execution results into a .jtl file String logFile = jmeterHome + "/bin/test.jtl"; ResultCollector logger = new ResultCollector(summer); logger.setFilename(logFile); testPlanTree.add(testPlanTree.getArray()[0], logger); // Run JMeter Test jmeter.configure(testPlanTree); jmeter.run();