/** * Store in JMeter Variables the UserToken so that the SSL context is reused * See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57804">Bug 57804</a> * @param jMeterVariables {@link JMeterVariables} * @param localContext {@link HttpContext} */ private void extractClientContextAfterSample(JMeterVariables jMeterVariables, HttpContext localContext) { Object userToken = localContext.getAttribute(HttpClientContext.USER_TOKEN); if(userToken != null) { log.debug("Extracted from HttpContext user token:{} storing it as JMeter variable:{}", userToken, JMETER_VARIABLE_USER_TOKEN); // During recording JMeterContextService.getContext().getVariables() is null if (jMeterVariables != null) { jMeterVariables.putObject(JMETER_VARIABLE_USER_TOKEN, userToken); } } }
private void putIntoVar(final JMeterVariables jmvars, final String name, final ResultSet resultSet) throws SQLException { if (RS_STORE_AS_OBJECT.equals(resultSetHandler)) { jmvars.putObject(name, resultSet); } else if (RS_COUNT_RECORDS.equals(resultSetHandler)) { jmvars.put(name, resultSet.toString() + " " + countRows(resultSet) + " rows"); } else { jmvars.put(name, resultSet.toString()); } }
private void putIntoVar(final JMeterVariables jmvars, final String name, final Blob blob) throws SQLException { if (RS_STORE_AS_OBJECT.equals(resultSetHandler)) { try { long length = Math.max(blob.length(), MAX_RETAIN_SIZE); jmvars.putObject(name, IOUtils.toByteArray(blob.getBinaryStream(0, length))); } catch (IOException e) { log.warn("Could not read BLOB into {} as object.", name, e); } } else if (RS_COUNT_RECORDS.equals(resultSetHandler)) { jmvars.put(name, blob.length() + " bytes"); } else { try { long length = Math.max(blob.length(), MAX_RETAIN_SIZE); try (InputStream is = blob.getBinaryStream(0, length)) { jmvars.put(name, IOUtils.toString(is, ENCODING)); } } catch (IOException e) { log.warn("Can't convert BLOB to String using {}", ENCODING, e); } } }
/** * @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); } }
if(!currentResultVariable.isEmpty()) { results = new ArrayList<>(); jmvars.putObject(currentResultVariable, results);
/** * {@inheritDoc} */ @Override public boolean isDone() { if (loopCount >= getEndIndex()) { return true; } JMeterContext context = getThreadContext(); StringBuilder builder = new StringBuilder( getInputVal().length()+getSeparator().length()+3); String inputVariable = builder.append(getInputVal()) .append(getSeparator()) .append(Integer.toString(loopCount+1)).toString(); final JMeterVariables variables = context.getVariables(); final Object currentVariable = variables.getObject(inputVariable); if (currentVariable != null) { variables.putObject(getReturnVal(), currentVariable); if (log.isDebugEnabled()) { log.debug("{} : Found in vars:{}, isDone:{}", getName(), inputVariable, Boolean.FALSE); } return false; } return super.isDone(); }
@Override public void testStarted() { this.setRunningVersion(true); TestBeanHelper.prepare(this); JMeterVariables variables = getThreadContext().getVariables(); String poolName = getDataSource(); if(JOrphanUtils.isBlank(poolName)) { throw new IllegalArgumentException("Variable Name must not be empty for element:"+getName()); } else if (variables.getObject(poolName) != null) { log.error("JDBC data source already defined for: {}", poolName); } else { String maxPool = getPoolMax(); perThreadPoolSet = Collections.synchronizedSet(new HashSet<BasicDataSource>()); if (maxPool.equals("0")){ // i.e. if we want per thread pooling variables.putObject(poolName, new DataSourceComponentImpl()); // pool will be created later } else { BasicDataSource src = initPool(maxPool); synchronized(this){ dbcpDataSource = src; variables.putObject(poolName, new DataSourceComponentImpl(dbcpDataSource)); } } } }
/** * For every JMeter sample, iterationStart method gets invoked, it initializes load generator and for each iteration sets new message as JMeter variable * * @param loopIterationEvent */ @Override public void iterationStart(LoopIterationEvent loopIterationEvent) { try { //Check if load generator is instantiated if (generator == null) { //instantiate serialized load generator generator = new SerializedLoadGenerator(className, objProperties); } //For ever iteration put message in jmeter variables JMeterVariables variables = JMeterContextService.getContext().getVariables(); variables.putObject(placeHolder, generator.nextMessage()); } catch (Exception e) { log.error("Failed to create PlaintTextLoadGenerator instance", e); } }
/** * For every JMeter sample, iterationStart method gets invoked, it initializes load generator and for each iteration sets new message as JMeter variable * * @param loopIterationEvent */ @Override public void iterationStart(LoopIterationEvent loopIterationEvent) { //Check if load generator is instantiated if (generator == null) { try { //instantiate plaintext load generator generator = new PlaintTextLoadGenerator(getJsonSchema()); } catch (Exception e) { log.error("Failed to create PlaintTextLoadGenerator instance", e); } } //For ever iteration put message in jmeter variables JMeterVariables variables = JMeterContextService.getContext().getVariables(); variables.putObject(placeHolder, generator.nextMessage()); }
@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()); }
getThreadContext().getVariables().putObject( getSource(), new MongoDB(MongoUtils.toServerAddresses(getConnection()), mongoOptions)); } catch (UnknownHostException e) {
threadVars.putObject(PACKAGE_OBJECT, pack);