private void injectVariables(JMeterThread jmThread, JMeterContext threadContext) { if (threadContext != null && threadContext.getVariables() != null) { try { Class<JMeterThread> cls = JMeterThread.class; Field vars = cls.getDeclaredField("threadVars"); vars.setAccessible(true); vars.set(jmThread, threadContext.getVariables()); } catch (Throwable ex) { log.warn("Cannot inject variables into parallel thread ", ex); } } }
/** * Gives access to the JMeter variables for the current thread. * * @return a pointer to the JMeter variables. */ protected JMeterVariables getVariables() { return JMeterContextService.getContext().getVariables(); }
/** * @return {@link JMeterVariables} */ public final JMeterVariables getJMeterVariables() { return JMeterContextService.getContext().getVariables(); }
private JMeterVariables getVariables() { JMeterContext context = JMeterContextService.getContext(); return context.getVariables(); }
public void setInitialContext(JMeterContext context) { threadVars.putAll(context.getVariables()); }
public static MongoDB getMongoDB(String source) { Object mongoSource = JMeterContextService.getContext().getVariables().getObject(source); if(mongoSource == null) { throw new IllegalStateException("mongoSource is null"); } else { if(mongoSource instanceof MongoDB) { return (MongoDB)mongoSource; } else { throw new IllegalStateException("Variable:"+ source +" is not a MongoDB instance, class:"+mongoSource.getClass()); } } }
private void processVariables() { final Arguments args1 = (Arguments) this.getUserDefinedVariablesAsProperty().getObjectValue(); Arguments args = (Arguments) args1.clone(); final JMeterVariables vars = JMeterContextService.getContext().getVariables(); Iterator<Entry<String, String>> it = args.getArgumentsAsMap().entrySet().iterator(); Entry<String, String> var; while (it.hasNext()) { var = it.next(); log.debug("Setting " + var.getKey() + "=" + var.getValue()); vars.put(var.getKey(), var.getValue()); } }
private WebDriver getWebDriver() { return (WebDriver) getThreadContext().getVariables().getObject(WebDriverConfig.BROWSER); }
private void processVariables() { final Arguments args1 = (Arguments) this.getUserDefinedVariablesAsProperty().getObjectValue(); Arguments args = (Arguments) args1.clone(); final JMeterVariables vars = JMeterContextService.getContext().getVariables(); Iterator<Map.Entry<String, String>> it = args.getArgumentsAsMap().entrySet().iterator(); Map.Entry<String, String> var; while (it.hasNext()) { var = it.next(); if (log.isDebugEnabled()) { log.debug("Setting " + var.getKey() + "=" + var.getValue()); } vars.put(var.getKey(), var.getValue()); } }
/** * Get access to MongoDB object * @param varName String MongoDB source * @param dbName Mongo DB database name * @param login name to use for login * @param password password to use for login * @return {@link DB} */ public static DB getDBFromSource(String varName, String dbName, String login, String password) { MongoDB mongodb = (MongoDB) JMeterContextService.getContext().getVariables().getObject(varName); if(mongodb==null) { throw new IllegalStateException("You didn't define variable:"+varName +" using MongoDB Source Config (property:MongoDB Source)"); } return mongodb.getDB(dbName, login, password); } }
/** * @param elementName Test Element * @param iterCount iteration count */ default void updateIterationIndex(String elementName, int iterCount) { JMeterVariables variables = JMeterContextService.getContext().getVariables(); if(variables != null) { variables.putObject( JMeterUtils.formatJMeterExportedVariableName(elementName+GenericController.INDEX_VAR_NAME_SUFFIX), iterCount); } }
@Override public void testEnded() { if(log.isDebugEnabled()) { log.debug(getTitle() + " testEnded"); } ((MongoDB)getThreadContext().getVariables().getObject(getSource())).clear(); }
@Override public void run() { try { // Copy in ThreadStarter thread context from calling Thread JMeterContextService.getContext().setVariables(this.context.getVariables()); supplyActiveThreads(); } catch (InterruptedException e) { log.debug("Interrupted", e); } log.debug("Thread starter has done its job"); }
@Override public void run() { try { // Copy in ThreadStarter thread context from calling Thread JMeterContextService.getContext().setVariables(this.context.getVariables()); supplyActiveThreads(); } catch (InterruptedException e) { log.debug("Interrupted", e); } log.debug("Thread starter has done its job"); }
private Map<String, String> buildParamsMap(){ String regExRefName = getRegExRefName()+"_"; String grNames = getRegParamNamesGrNr(); String grValues = getRegExParamValuesGrNr(); JMeterVariables jmvars = getThreadContext().getVariables(); // verify if regex groups exists if(jmvars.get(regExRefName + MATCH_NR) == null || jmvars.get(regExRefName + 1 + REGEX_GROUP_SUFFIX + grNames) == null || jmvars.get(regExRefName + 1 + REGEX_GROUP_SUFFIX + grValues) == null){ return null; } int n = Integer.parseInt(jmvars.get(regExRefName + MATCH_NR)); Map<String, String> map = new HashMap<>(n); for(int i=1; i<=n; i++){ map.put(jmvars.get(regExRefName + i + REGEX_GROUP_SUFFIX + grNames), jmvars.get(regExRefName + i + REGEX_GROUP_SUFFIX + grValues)); } return map; }
public void process() { String value = null; try { Object valueObj = FifoMap.getInstance().pop(getQueueName(), getTimeoutAsLong()); if (valueObj != null) { value = valueObj.toString(); } } catch (InterruptedException ex) { log.warn("Interrupted pop from queue " + getQueueName()); value = "INTERRUPTED"; } final JMeterVariables vars = JMeterContextService.getContext().getVariables(); if (vars != null) { vars.put(getVarName(), value); } }
public void process() { String value = null; try { Object valueObj = FifoMap.getInstance().pop(getQueueName(), getTimeoutAsLong()); if (valueObj != null) { value = valueObj.toString(); } } catch (InterruptedException ex) { log.warn("Interrupted pop from queue " + getQueueName()); value = "INTERRUPTED"; } final JMeterVariables vars = JMeterContextService.getContext().getVariables(); if (vars != null) { vars.put(getVarName(), value); } }
@Override public void iterationStart(LoopIterationEvent loopIterationEvent) { if (generator == null) { generator = createGenerator(getClassName(), readFile(getFileName())); } JMeterVariables variables = JMeterContextService.getContext().getVariables(); variables.put(getVariableName(), generator.nextMessage()); }
ScriptEngine createScriptEngineWith(SampleResult sampleResult) { final ScriptEngine scriptEngine = scriptEngineManager.getEngineByName(this.getScriptLanguage()); Bindings engineBindings = new SimpleBindings(); WebDriverScriptable scriptable = new WebDriverScriptable(); scriptable.setName(getName()); scriptable.setParameters(getParameters()); JMeterContext context = JMeterContextService.getContext(); scriptable.setVars(context.getVariables()); scriptable.setProps(JMeterUtils.getJMeterProperties()); scriptable.setCtx(context); scriptable.setLog(LOGGER); scriptable.setSampleResult(sampleResult); scriptable.setBrowser(getWebDriver()); engineBindings.put("WDS", scriptable); scriptEngine.setBindings(engineBindings, ScriptContext.ENGINE_SCOPE); return scriptEngine; } }
@Override public void iterationStart(LoopIterationEvent loopIterationEvent) { if (isRecreateBrowserOnIterationStart() && !isDevMode()) { final T browser = getThreadBrowser(); quitBrowser(browser); setThreadBrowser(getPreparedBrowser()); LOGGER.info("Created browser object: " + browser); } getThreadContext().getVariables().putObject(WebDriverConfig.BROWSER, getThreadBrowser()); }