org.apache.jmeter.protocol.http.sampler

Class HTTPSampler2

Implemented Interfaces:
Cloneable, HTTPConstantsInterface, Interruptible, Sampler, Serializable, TestElement, TestListener, ThreadListener
Known Direct Subclasses:
SoapSampler

public class HTTPSampler2
extends HTTPSamplerBase
implements Interruptible

A sampler which understands all the parts necessary to read statistics about HTTP requests, including cookies and authentication.

Field Summary

protected HttpClient
savedClient

Fields inherited from class org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase

ARGUMENTS, AUTH_MANAGER, AUTO_REDIRECTS, CACHE_MANAGER, CLIENT, CONNECT_TIMEOUT, CONTENT_ENCODING, CONTENT_TYPE, COOKIE_MANAGER, DEFAULT_METHOD, DOMAIN, DO_MULTIPART_POST, EMBEDDED_URL_RE, FOLLOW_REDIRECTS, HEADER_MANAGER, IMAGE_PARSER, IMPLEMENTATION, MAX_FRAME_DEPTH, MAX_REDIRECTS, METHOD, MONITOR, NON_HTTP_RESPONSE_CODE, NON_HTTP_RESPONSE_MESSAGE, PATH, PORT, PROTOCOL, RESPONSE_TIMEOUT, UNSPECIFIED_PORT, UNSPECIFIED_PORT_AS_STRING, URL, URL_UNSPECIFIED_PORT, URL_UNSPECIFIED_PORT_AS_STRING, USE_KEEPALIVE

Fields inherited from interface org.apache.jmeter.protocol.http.util.HTTPConstantsInterface

APPLICATION_X_WWW_FORM_URLENCODED, CONNECTION_CLOSE, DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_PORT_STRING, DEFAULT_HTTP_PORT, DEFAULT_HTTP_PORT_STRING, DELETE, ENCODING_GZIP, ETAG, GET, HEAD, HEADER_AUTHORIZATION, HEADER_CONNECTION, HEADER_CONTENT_DISPOSITION, HEADER_CONTENT_ENCODING, HEADER_CONTENT_LENGTH, HEADER_CONTENT_TYPE, HEADER_COOKIE, HEADER_LOCATION, HEADER_SET_COOKIE, HTTP_1_1, IF_MODIFIED_SINCE, IF_NONE_MATCH, KEEP_ALIVE, LAST_MODIFIED, MULTIPART_FORM_DATA, OPTIONS, POST, PROTOCOL_HTTP, PROTOCOL_HTTPS, PUT, TRACE, TRANSFER_ENCODING

Fields inherited from interface org.apache.jmeter.testelement.TestElement

COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS

Constructor Summary

HTTPSampler2()
Constructor for the HTTPSampler2 object.

Method Summary

protected String
getConnectionHeaders(HttpMethod method)
Get all the request headers for the HttpMethod
protected String
getResponseHeaders(HttpMethod method)
Gets the ResponseHeaders
boolean
interrupt()
protected HTTPSampleResult
sample(URL url, String method, boolean areFollowingRedirect, int frameDepth)
Samples the URL passed in and stores the result in HTTPSampleResult, following redirects and downloading page resources as appropriate.
protected void
saveConnectionCookies(HttpMethod method, URL u, CookieManager cookieManager)
From the HttpMethod, store all the "set-cookie" key-pair values in the cookieManager of the UrlConfig.
protected void
setDefaultRequestHeaders(HttpMethod httpMethod)
Set any default request headers to include
protected HttpClient
setupConnection(URL u, HttpMethodBase httpMethod, HTTPSampleResult res)
Returns an HttpConnection fully ready to attempt connection.
void
threadFinished()
Called once for each thread at the end of a test
void
threadStarted()
Called just before the start of the thread

Methods inherited from class org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase

addArgument, addArgument, addEncodedArgument, addEncodedArgument, addEncodedArgument, addNonEncodedArgument, addTestElement, clone, downloadPageResources, encodeBackSlashes, encodeSpaces, errorResult, followRedirects, getArguments, getAuthManager, getAutoRedirects, getCacheManager, getClient, getConnectTimeout, getContentEncoding, getCookieManager, getDefaultPort, getDoMultipartPost, getDomain, getEmbeddedUrlRE, getFileField, getFilename, getFollowRedirects, getHTTPFileCount, getHTTPFiles, getHeaderManager, getImplementation, getMethod, getMimetype, getMonitor, getPath, getPort, getPortIfSpecified, getProtocol, getQueryString, getQueryString, getResponseTimeout, getSendFileAsPostBody, getSendParameterValuesAsPostBody, getUrl, getUseKeepAlive, getUseMultipartForPost, getValidMethodsAsArray, hasArguments, isImageParser, isMonitor, isProtocolDefaultPort, isSecure, isSecure, isSuccessCode, parseArguments, parseArguments, readResponse, resultProcessing, sample, sample, sample, setArguments, setAuthManager, setAutoRedirects, setCacheManager, setClient, setConnectTimeout, setContentEncoding, setCookieManager, setDoMultipartPost, setDomain, setEmbeddedUrlRE, setFileField, setFilename, setFollowRedirects, setHTTPFiles, setHeaderManager, setImageParser, setImplementation, setMD5, setMethod, setMimetype, setMonitor, setMonitor, setPath, setPath, setPort, setProtocol, setResponseTimeout, setUseKeepAlive, testEnded, testEnded, testIterationStart, testStarted, testStarted, threadFinished, threadStarted, toString, useMD5

Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement

addProperty, addTestElement, canRemove, clear, clearTemporary, clone, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty

Field Details

savedClient

protected HttpClient savedClient

Constructor Details

HTTPSampler2

public HTTPSampler2()
Constructor for the HTTPSampler2 object. Consider using HTTPSamplerFactory.newInstance() instead

Method Details

getConnectionHeaders

protected String getConnectionHeaders(HttpMethod method)
Get all the request headers for the HttpMethod
Parameters:
method - HttpMethod which represents the request
Returns:
the headers as a string

getResponseHeaders

protected String getResponseHeaders(HttpMethod method)
Gets the ResponseHeaders
Parameters:
method - connection from which the headers are read
Returns:
string containing the headers, one per line

interrupt

public boolean interrupt()
Specified by:
interrupt in interface Interruptible

sample

protected HTTPSampleResult sample(URL url,
                                  String method,
                                  boolean areFollowingRedirect,
                                  int frameDepth)
Samples the URL passed in and stores the result in HTTPSampleResult, following redirects and downloading page resources as appropriate.

When getting a redirect target, redirects are not followed and resources are not downloaded. The caller will take care of this.

Overrides:
sample in interface HTTPSamplerBase
Parameters:
url - URL to sample
method - HTTP method: GET, POST,...
areFollowingRedirect - whether we're getting a redirect target
frameDepth - Depth of this target in the frame structure. Used only to prevent infinite recursion.
Returns:
results of the sampling

saveConnectionCookies

protected void saveConnectionCookies(HttpMethod method,
                                     URL u,
                                     CookieManager cookieManager)
From the HttpMethod, store all the "set-cookie" key-pair values in the cookieManager of the UrlConfig.
Parameters:
method - HttpMethod which represents the request
u - URL of the URL request
cookieManager - the CookieManager containing all the cookies

setDefaultRequestHeaders

protected void setDefaultRequestHeaders(HttpMethod httpMethod)
Set any default request headers to include
Parameters:
httpMethod - the HttpMethod used for the request

setupConnection

protected HttpClient setupConnection(URL u,
                                     HttpMethodBase httpMethod,
                                     HTTPSampleResult res)
            throws IOException
Returns an HttpConnection fully ready to attempt connection. This means it sets the request method (GET or POST), headers, cookies, and authorization for the URL request.

The request infos are saved into the sample result if one is provided.

Parameters:
u - URL of the URL request
httpMethod - GET/PUT/HEAD etc
res - sample result to save request infos to
Returns:
HttpConnection ready for .connect

threadFinished

public void threadFinished()
Called once for each thread at the end of a test
Specified by:
threadFinished in interface ThreadListener
Overrides:
threadFinished in interface HTTPSamplerBase
See Also:
org.apache.jmeter.threads.JMeterThread.threadFinished()

threadStarted

public void threadStarted()
Called just before the start of the thread
Specified by:
threadStarted in interface ThreadListener
Overrides:
threadStarted in interface HTTPSamplerBase
See Also:
org.apache.jmeter.threads.JMeterThread.threadStarted()

Copyright © 1998-2010 Apache Software Foundation. All Rights Reserved.