|
Apache JMeter | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.samplers.AbstractSampler
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase
public abstract class HTTPSamplerBase
Common constants and methods for HTTP samplers
Fields inherited from interface org.apache.jmeter.protocol.http.util.HTTPConstantsInterface |
---|
APPLICATION_X_WWW_FORM_URLENCODED, CACHE_CONTROL, CONNECT, CONNECTION_CLOSE, DEFAULT_HTTP_PORT, DEFAULT_HTTP_PORT_STRING, DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_PORT_STRING, DELETE, ENCODING_GZIP, ETAG, EXPIRES, 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 | |
---|---|
HTTPSamplerBase()
|
Method Summary | |
---|---|
void |
addArgument(String name,
String value)
|
void |
addArgument(String name,
String value,
String metadata)
|
void |
addEncodedArgument(String name,
String value)
Add an argument which has already been encoded |
void |
addEncodedArgument(String name,
String value,
String metaData)
|
void |
addEncodedArgument(String name,
String value,
String metaData,
String contentEncoding)
|
void |
addNonEncodedArgument(String name,
String value,
String metadata)
|
void |
addTestElement(TestElement el)
|
Object |
clone()
|
protected HTTPSampleResult |
downloadPageResources(HTTPSampleResult res,
HTTPSampleResult container,
int frameDepth)
Download the resources of an HTML page. |
protected static String |
encodeBackSlashes(String value)
|
protected String |
encodeSpaces(String path)
|
protected HTTPSampleResult |
errorResult(Throwable e,
HTTPSampleResult res)
Obtain a result that will help inform the user that an error has occured during sampling, and how long it took to detect the error. |
protected HTTPSampleResult |
followRedirects(HTTPSampleResult res,
int frameDepth)
Iteratively download the redirect targets of a redirect response. |
Arguments |
getArguments()
|
AuthManager |
getAuthManager()
|
boolean |
getAutoRedirects()
|
CacheManager |
getCacheManager()
|
String |
getClient()
|
int |
getConnectTimeout()
|
String |
getContentEncoding()
|
CookieManager |
getCookieManager()
|
static int |
getDefaultPort(String protocol,
int port)
Get the port number for a URL, applying defaults if necessary. |
String |
getDomain()
|
boolean |
getDoMultipartPost()
|
String |
getEmbeddedUrlRE()
Get the regular expression URLs must match. |
boolean |
getFollowRedirects()
|
HeaderManager |
getHeaderManager()
|
int |
getHTTPFileCount()
|
HTTPFileArg[] |
getHTTPFiles()
Get the collection of files as a list. |
String |
getImplementation()
|
String |
getMethod()
|
String |
getMonitor()
|
String |
getPath()
|
int |
getPort()
Get the port; apply the default for the protocol if necessary. |
int |
getPortIfSpecified()
Get the port number from the port string, allowing for trailing blanks. |
String |
getProtocol()
Gets the protocol, with default. |
String |
getProxyHost()
|
String |
getProxyPass()
|
int |
getProxyPortInt()
|
String |
getProxyUser()
|
String |
getQueryString()
Gets the QueryString attribute of the UrlConfig object, using UTF-8 to encode the URL |
String |
getQueryString(String contentEncoding)
Gets the QueryString attribute of the UrlConfig object, using the specified encoding to encode the parameter values put into the URL |
int |
getResponseTimeout()
|
boolean |
getSendFileAsPostBody()
Determine if the file should be sent as the entire Post body, i.e. without any additional wrapping |
boolean |
getSendParameterValuesAsPostBody()
Determine if none of the parameters have a name, and if that is the case, it means that the parameter values should be sent as the post body |
URL |
getUrl()
Get the URL, built from its component parts. |
boolean |
getUseKeepAlive()
|
boolean |
getUseMultipartForPost()
Determine if we should use multipart/form-data or application/x-www-form-urlencoded for the post |
static String[] |
getValidMethodsAsArray()
|
boolean |
hasArguments()
|
boolean |
isImageParser()
|
boolean |
isMonitor()
|
boolean |
isProtocolDefaultPort()
Tell whether the default port for the specified protocol is used |
static boolean |
isSecure(String protocol)
|
static boolean |
isSecure(URL url)
|
protected boolean |
isSuccessCode(int code)
Determine if the HTTP status code is successful or not i.e. in range 200 to 399 inclusive |
void |
parseArguments(String queryString)
|
void |
parseArguments(String queryString,
String contentEncoding)
This method allows a proxy server to send over the raw text from a browser's output stream to be parsed and stored correctly into the UrlConfig object. |
byte[] |
readResponse(SampleResult sampleResult,
InputStream in,
int length)
Read response from the input stream, converting to MD5 digest if the useMD5 property is set. |
protected HTTPSampleResult |
resultProcessing(boolean areFollowingRedirect,
int frameDepth,
HTTPSampleResult res)
Follow redirects and download page resources if appropriate. this works, but the container stuff here is what's doing it. followRedirects() is actually doing the work to make sure we have only one container to make this work more naturally, I think this method - sample() - needs to take an HTTPSamplerResult container parameter instead of a boolean:areFollowingRedirect. |
SampleResult |
sample()
Perform a sample, and return the results |
SampleResult |
sample(Entry e)
Do a sampling and return its results. |
protected abstract HTTPSampleResult |
sample(URL u,
String method,
boolean areFollowingRedirect,
int depth)
Samples the URL passed in and stores the result in HTTPSampleResult , following redirects and downloading
page resources as appropriate. |
void |
setArguments(Arguments value)
|
void |
setAuthManager(AuthManager value)
|
void |
setAutoRedirects(boolean value)
|
void |
setCacheManager(CacheManager value)
|
void |
setClient(String client)
|
void |
setConnectTimeout(String value)
|
void |
setContentEncoding(String value)
|
void |
setCookieManager(CookieManager value)
|
void |
setDomain(String value)
|
void |
setDoMultipartPost(boolean value)
|
void |
setEmbeddedUrlRE(String regex)
|
void |
setFollowRedirects(boolean value)
|
void |
setHeaderManager(HeaderManager value)
|
void |
setHTTPFiles(HTTPFileArg[] files)
Saves the list of files. |
void |
setImageParser(boolean parseImages)
|
void |
setImplementation(String value)
|
void |
setMD5(boolean truth)
|
void |
setMethod(String value)
|
void |
setMonitor(boolean truth)
|
void |
setMonitor(String value)
|
void |
setPath(String path)
Sets the Path attribute of the UrlConfig object Also calls parseArguments to extract and store any query arguments |
void |
setPath(String path,
String contentEncoding)
Sets the Path attribute of the UrlConfig object Also calls parseArguments to extract and store any query arguments |
void |
setPort(int value)
|
void |
setProtocol(String value)
|
void |
setResponseTimeout(String value)
|
void |
setUseKeepAlive(boolean value)
|
void |
testEnded()
Called once for all threads after the end of a test. |
void |
testEnded(String host)
Called once for all threads after the end of a test. |
void |
testIterationStart(LoopIterationEvent event)
Each time through a Thread Group's test script, an iteration event is fired for each thread. |
void |
testStarted()
Called just before the start of the test from the main engine thread. |
void |
testStarted(String host)
Called just before the start of the test from the main engine thread. |
void |
threadFinished()
Called for each thread after all samples have been processed. |
void |
threadStarted()
Called for each thread before starting sampling. |
String |
toString()
|
boolean |
useMD5()
|
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, 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 |
---|
public static final String ARGUMENTS
public static final String AUTH_MANAGER
public static final String COOKIE_MANAGER
public static final String CACHE_MANAGER
public static final String HEADER_MANAGER
public static final String DOMAIN
public static final String PORT
public static final String PROXYHOST
public static final String PROXYPORT
public static final String PROXYUSER
public static final String PROXYPASS
public static final String CONNECT_TIMEOUT
public static final String RESPONSE_TIMEOUT
public static final String METHOD
public static final String CONTENT_ENCODING
public static final String IMPLEMENTATION
public static final String PATH
public static final String FOLLOW_REDIRECTS
public static final String AUTO_REDIRECTS
public static final String PROTOCOL
public static final String URL
public static final String CLIENT
public static final String DEFAULT_METHOD
public static final String USE_KEEPALIVE
public static final String DO_MULTIPART_POST
public static final String CONTENT_TYPE
public static final String IMAGE_PARSER
public static final String EMBEDDED_URL_RE
public static final String MONITOR
public static final int UNSPECIFIED_PORT
public static final String UNSPECIFIED_PORT_AS_STRING
public static final int URL_UNSPECIFIED_PORT
public static final String URL_UNSPECIFIED_PORT_AS_STRING
protected static final String NON_HTTP_RESPONSE_CODE
protected static final String NON_HTTP_RESPONSE_MESSAGE
protected static final int MAX_REDIRECTS
protected static final int MAX_FRAME_DEPTH
Constructor Detail |
---|
public HTTPSamplerBase()
Method Detail |
---|
public boolean getSendFileAsPostBody()
public boolean getSendParameterValuesAsPostBody()
public boolean getUseMultipartForPost()
public void setProtocol(String value)
public String getProtocol()
public String getClient()
public void setClient(String client)
public void setPath(String path)
path
- The new Path valuepublic void setPath(String path, String contentEncoding)
path
- The new Path valuecontentEncoding
- The encoding used for the querystring parameter valuespublic String getPath()
public void setFollowRedirects(boolean value)
public boolean getFollowRedirects()
public void setAutoRedirects(boolean value)
public boolean getAutoRedirects()
public void setMethod(String value)
public String getMethod()
public void setContentEncoding(String value)
public String getContentEncoding()
public void setUseKeepAlive(boolean value)
public boolean getUseKeepAlive()
public void setDoMultipartPost(boolean value)
public boolean getDoMultipartPost()
public void setMonitor(String value)
public void setMonitor(boolean truth)
public String getMonitor()
public boolean isMonitor()
public void setImplementation(String value)
public String getImplementation()
public boolean useMD5()
public void setMD5(boolean truth)
public void addEncodedArgument(String name, String value)
public void addEncodedArgument(String name, String value, String metaData, String contentEncoding)
public void addEncodedArgument(String name, String value, String metaData)
public void addNonEncodedArgument(String name, String value, String metadata)
public void addArgument(String name, String value)
public void addArgument(String name, String value, String metadata)
public boolean hasArguments()
public void addTestElement(TestElement el)
AbstractTestElement
addTestElement
in interface TestElement
addTestElement
in class AbstractTestElement
public void setPort(int value)
public static int getDefaultPort(String protocol, int port)
protocol
- from URL.getProtocol()
port
- number from URL.getPort()
public int getPortIfSpecified()
public boolean isProtocolDefaultPort()
public int getPort()
public void setDomain(String value)
public String getDomain()
public void setConnectTimeout(String value)
public int getConnectTimeout()
public void setResponseTimeout(String value)
public int getResponseTimeout()
public String getProxyHost()
public int getProxyPortInt()
public String getProxyUser()
public String getProxyPass()
public void setArguments(Arguments value)
public Arguments getArguments()
public void setAuthManager(AuthManager value)
public AuthManager getAuthManager()
public void setHeaderManager(HeaderManager value)
public HeaderManager getHeaderManager()
public void setCookieManager(CookieManager value)
public CookieManager getCookieManager()
public void setCacheManager(CacheManager value)
public CacheManager getCacheManager()
public boolean isImageParser()
public void setImageParser(boolean parseImages)
public String getEmbeddedUrlRE()
public void setEmbeddedUrlRE(String regex)
protected HTTPSampleResult errorResult(Throwable e, HTTPSampleResult res)
e
- Exception representing the error.res
- SampleResult
public URL getUrl() throws MalformedURLException
As a special case, if the path starts with "http[s]://", then the path is assumed to be the entire URL.
MalformedURLException
public String getQueryString()
public String getQueryString(String contentEncoding)
contentEncoding
- the encoding to use for encoding parameter values
public void parseArguments(String queryString, String contentEncoding)
queryString
- -
the query stringcontentEncoding
- -
the content encoding of the query string. The query string might
actually be the post body of a http post request.public void parseArguments(String queryString)
public String toString()
toString
in class Object
public SampleResult sample(Entry e)
sample
in interface Sampler
e
- Entry
to be sampled
public SampleResult sample()
protected abstract HTTPSampleResult sample(URL u, String method, boolean areFollowingRedirect, int depth)
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.
u
- URL to samplemethod
- HTTP method: GET, POST,...areFollowingRedirect
- whether we're getting a redirect targetdepth
- Depth of this target in the frame structure. Used only to
prevent infinite recursion.
protected HTTPSampleResult downloadPageResources(HTTPSampleResult res, HTTPSampleResult container, int frameDepth)
res
- result of the initial request - must contain an HTML responsecontainer
- for storing the results, if anyframeDepth
- Depth of this target in the frame structure. Used only to
prevent infinite recursion.
protected String encodeSpaces(String path)
public void testEnded()
Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.
N.B. testStarted() and testEnded() are called from different threads.
testEnded
in interface TestListener
StandardJMeterEngine.stopTest()
public void testEnded(String host)
Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.
N.B. testStarted() and testEnded() are called from different threads.
testEnded
in interface TestListener
host
- name of hostStandardJMeterEngine.stopTest()
public void testIterationStart(LoopIterationEvent event)
testIterationStart
in interface TestListener
public void testStarted()
Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.
N.B. testStarted() and testEnded() are called from different threads.
testStarted
in interface TestListener
StandardJMeterEngine.run()
public void testStarted(String host)
Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.
N.B. testStarted() and testEnded() are called from different threads.
testStarted
in interface TestListener
host
- name of hostStandardJMeterEngine.run()
public Object clone()
clone
in interface TestElement
clone
in class AbstractTestElement
protected HTTPSampleResult followRedirects(HTTPSampleResult res, int frameDepth)
The returned result will contain one subsample for each request issued, including the original one that was passed in. It will be an HTTPSampleResult that should mostly look as if the final destination of the redirect chain had been obtained in a single shot.
res
- result of the initial request - must be a redirect responseframeDepth
- Depth of this target in the frame structure. Used only to
prevent infinite recursion.
protected HTTPSampleResult resultProcessing(boolean areFollowingRedirect, int frameDepth, HTTPSampleResult res)
areFollowingRedirect
- frameDepth
- res
-
protected boolean isSuccessCode(int code)
protected static String encodeBackSlashes(String value)
public HTTPFileArg[] getHTTPFiles()
public int getHTTPFileCount()
public void setHTTPFiles(HTTPFileArg[] files)
files
- list of files to savepublic static String[] getValidMethodsAsArray()
public static boolean isSecure(String protocol)
public static boolean isSecure(URL url)
public void threadStarted()
ThreadListener
threadStarted
in interface ThreadListener
JMeterThread.threadStarted()
public void threadFinished()
ThreadListener
threadFinished
in interface ThreadListener
JMeterThread.threadFinished()
public byte[] readResponse(SampleResult sampleResult, InputStream in, int length) throws IOException
sampleResult
- in
- input streamlength
- expected input length or zero
IOException
|
Apache JMeter | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |