Apache JMeter

org.apache.jmeter.protocol.http.sampler
Class HTTPSampler2

java.lang.Object
  extended byorg.apache.jmeter.testelement.AbstractTestElement
      extended byorg.apache.jmeter.samplers.AbstractSampler
          extended byorg.apache.jmeter.protocol.http.sampler.HTTPSamplerBase
              extended byorg.apache.jmeter.protocol.http.sampler.HTTPSampler2
All Implemented Interfaces:
Cloneable, HTTPConstantsInterface, Interruptible, Sampler, Serializable, TestElement, TestListener, ThreadListener
Direct Known 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.

See Also:
Serialized Form

Field Summary
protected  org.apache.commons.httpclient.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, DO_MULTIPART_POST, DOMAIN, 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_HTTP_PORT, DEFAULT_HTTP_PORT_STRING, DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_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(org.apache.commons.httpclient.HttpMethod method)
          Get all the request headers for the HttpMethod
protected  String getResponseHeaders(org.apache.commons.httpclient.HttpMethod method)
          Gets the ResponseHeaders
 boolean interrupt()
          Interrupt the current operation if possible.
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(org.apache.commons.httpclient.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(org.apache.commons.httpclient.HttpMethod httpMethod)
          Set any default request headers to include
protected  org.apache.commons.httpclient.HttpClient setupConnection(URL u, org.apache.commons.httpclient.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, getDomain, getDoMultipartPost, getEmbeddedUrlRE, getFileField, getFilename, getFollowRedirects, getHeaderManager, getHTTPFileCount, getHTTPFiles, 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, setArguments, setAuthManager, setAutoRedirects, setCacheManager, setClient, setConnectTimeout, setContentEncoding, setCookieManager, setDomain, setDoMultipartPost, setEmbeddedUrlRE, setFileField, setFilename, setFollowRedirects, setHeaderManager, setHTTPFiles, setImageParser, setImplementation, setMD5, setMethod, setMimetype, setMonitor, setMonitor, setPath, setPath, setPort, setProtocol, setResponseTimeout, setUseKeepAlive, testEnded, testEnded, testIterationStart, testStarted, testStarted, toString, useMD5
 
Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement
addProperty, canRemove, clear, clearTemporary, 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
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.jmeter.testelement.TestElement
canRemove, clear, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removeProperty, setComment, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse
 

Field Detail

savedClient

protected volatile org.apache.commons.httpclient.HttpClient savedClient
Constructor Detail

HTTPSampler2

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

Method Detail

setupConnection

protected org.apache.commons.httpclient.HttpClient setupConnection(URL u,
                                                                   org.apache.commons.httpclient.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
Throws:
IOException - if an I/O Exception occurs

setDefaultRequestHeaders

protected void setDefaultRequestHeaders(org.apache.commons.httpclient.HttpMethod httpMethod)
Set any default request headers to include

Parameters:
httpMethod - the HttpMethod used for the request

getResponseHeaders

protected String getResponseHeaders(org.apache.commons.httpclient.HttpMethod method)
Gets the ResponseHeaders

Parameters:
method - connection from which the headers are read
Returns:
string containing the headers, one per line

getConnectionHeaders

protected String getConnectionHeaders(org.apache.commons.httpclient.HttpMethod method)
Get all the request headers for the HttpMethod

Parameters:
method - HttpMethod which represents the request
Returns:
the headers as a string

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.

Specified by:
sample in class 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(org.apache.commons.httpclient.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

threadStarted

public void threadStarted()
Description copied from interface: ThreadListener
Called just before the start of the thread

Specified by:
threadStarted in interface ThreadListener
Overrides:
threadStarted in class HTTPSamplerBase

threadFinished

public void threadFinished()
Description copied from interface: ThreadListener
Called once for each thread at the end of a test

Specified by:
threadFinished in interface ThreadListener
Overrides:
threadFinished in class HTTPSamplerBase

interrupt

public boolean interrupt()
Interrupt the current operation if possible.

Specified by:
interrupt in interface Interruptible
Returns:
true if there was an operation to interrupt.

Apache JMeter

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