use of org.apache.jmeter.samplers.SampleEvent in project jmeter by apache.
the class TestResultAction method testOnFailureStopTestNow.
@Test
public void testOnFailureStopTestNow() {
sampleResult.setSuccessful(false);
resultAction.setErrorAction(ResultAction.ON_ERROR_STOPTEST_NOW);
resultAction.sampleOccurred(new SampleEvent(sampleResult, "JUnit-TG"));
Assert.assertFalse(sampleResult.isStopTest());
Assert.assertTrue(sampleResult.isStopTestNow());
Assert.assertFalse(sampleResult.isStopThread());
Assert.assertFalse(sampleResult.isStartNextThreadLoop());
}
use of org.apache.jmeter.samplers.SampleEvent in project jmeter by apache.
the class TestResultAction method testSuccess.
@Test
public void testSuccess() {
sampleResult.setSuccessful(true);
resultAction.setErrorAction(ResultAction.ON_ERROR_STOPTEST);
resultAction.sampleOccurred(new SampleEvent(sampleResult, "JUnit-TG"));
Assert.assertFalse(sampleResult.isStopTest());
}
use of org.apache.jmeter.samplers.SampleEvent in project jmeter by apache.
the class TestResultSaver method testSuccessWithVariable.
@Test
public void testSuccessWithVariable() {
sampleResult.setSuccessful(true);
resultSaver.setProperty(ResultSaver.NUMBER_PAD_LENGTH, "5");
resultSaver.setProperty(ResultSaver.VARIABLE_NAME, "myVar");
resultSaver.testStarted();
resultSaver.sampleOccurred(new SampleEvent(sampleResult, "JUnit-TG"));
String fileName = sampleResult.getResultFileName();
Assert.assertNotNull(fileName);
Assert.assertEquals("00001.unknown", fileName);
File file = new File(FileServer.getDefaultBase(), fileName);
Assert.assertTrue(file.exists());
Assert.assertTrue(file.delete());
Assert.assertEquals("00001.unknown", vars.get("myVar"));
}
use of org.apache.jmeter.samplers.SampleEvent in project jmeter by apache.
the class TestResultSaver method testSuccessSaveErrorsOnly.
@Test
public void testSuccessSaveErrorsOnly() {
sampleResult.setSuccessful(true);
resultSaver.setProperty(ResultSaver.NUMBER_PAD_LENGTH, "5");
resultSaver.setProperty(ResultSaver.VARIABLE_NAME, "myVar");
resultSaver.setProperty(ResultSaver.ERRORS_ONLY, "true");
resultSaver.testStarted();
resultSaver.sampleOccurred(new SampleEvent(sampleResult, "JUnit-TG"));
String fileName = sampleResult.getResultFileName();
Assert.assertEquals("", fileName);
Assert.assertNull(vars.get("myVar"));
}
use of org.apache.jmeter.samplers.SampleEvent in project jmeter by apache.
the class ProxyControl method deliverSampler.
/**
* Receives the recorded sampler from the proxy server for placing in the
* test tree; this is skipped if the sampler is null (e.g. for recording SSL errors)
* Always sends the result to any registered sample listeners.
*
* @param sampler the sampler, may be null
* @param testElements the test elements to be added (e.g. header manager) under the Sampler
* @param result the sample result, not null
* TODO param serverResponse to be added to allow saving of the
* server's response while recording.
*/
public synchronized void deliverSampler(final HTTPSamplerBase sampler, final TestElement[] testElements, final SampleResult result) {
boolean notifySampleListeners = true;
if (sampler != null) {
if (ATTEMPT_REDIRECT_DISABLING && (samplerRedirectAutomatically || samplerFollowRedirects) && result instanceof HTTPSampleResult) {
final HTTPSampleResult httpSampleResult = (HTTPSampleResult) result;
final String urlAsString = httpSampleResult.getUrlAsString();
if (urlAsString.equals(LAST_REDIRECT)) {
// the url matches the last redirect
sampler.setEnabled(false);
sampler.setComment("Detected a redirect from the previous sample");
} else {
// this is not the result of a redirect
// so break the chain
LAST_REDIRECT = null;
}
if (httpSampleResult.isRedirect()) {
// Save Location so resulting sample can be disabled
if (LAST_REDIRECT == null) {
sampler.setComment("Detected the start of a redirect chain");
}
LAST_REDIRECT = httpSampleResult.getRedirectLocation();
} else {
LAST_REDIRECT = null;
}
}
if (filterContentType(result) && filterUrl(sampler)) {
JMeterTreeNode myTarget = findTargetControllerNode();
// OK, because find only returns correct element types
@SuppressWarnings("unchecked") Collection<ConfigTestElement> defaultConfigurations = (Collection<ConfigTestElement>) findApplicableElements(myTarget, ConfigTestElement.class, false);
// OK, because find only returns correct element types
@SuppressWarnings("unchecked") Collection<Arguments> userDefinedVariables = (Collection<Arguments>) findApplicableElements(myTarget, Arguments.class, true);
removeValuesFromSampler(sampler, defaultConfigurations);
replaceValues(sampler, testElements, userDefinedVariables);
sampler.setAutoRedirects(samplerRedirectAutomatically);
sampler.setFollowRedirects(samplerFollowRedirects);
sampler.setUseKeepAlive(useKeepAlive);
sampler.setImageParser(samplerDownloadImages);
String prefix = getPrefixHTTPSampleName();
if (!StringUtils.isEmpty(prefix)) {
sampler.setName(prefix + sampler.getName());
result.setSampleLabel(prefix + result.getSampleLabel());
}
Authorization authorization = createAuthorization(testElements, sampler);
if (authorization != null) {
setAuthorization(authorization, myTarget);
}
placeSampler(sampler, testElements, myTarget);
} else {
if (log.isDebugEnabled()) {
log.debug("Sample excluded based on url or content-type: " + result.getUrlAsString() + " - " + result.getContentType());
}
notifySampleListeners = notifyChildSamplerListenersOfFilteredSamples;
result.setSampleLabel("[" + result.getSampleLabel() + "]");
}
}
if (notifySampleListeners) {
// SampleEvent is not passed JMeterVariables, because they don't make sense for Proxy Recording
notifySampleListeners(new SampleEvent(result, "WorkBench"));
} else {
log.debug("Sample not delivered to Child Sampler Listener based on url or content-type: " + result.getUrlAsString() + " - " + result.getContentType());
}
}
Aggregations