Class WebServiceSampler
- java.lang.Object
-
- org.apache.jmeter.testelement.AbstractTestElement
-
- org.apache.jmeter.samplers.AbstractSampler
-
- org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase
-
- org.apache.jmeter.protocol.http.sampler.WebServiceSampler
-
- All Implemented Interfaces:
Serializable
,Cloneable
,ConfigMergabilityIndicator
,Searchable
,HTTPConstantsInterface
,Sampler
,TestElement
,TestIterationListener
,TestStateListener
,ThreadListener
public class WebServiceSampler extends HTTPSamplerBase
Sampler to handle Web Service requests. It uses Apache SOAP drivers to perform the XML generation, connection, SOAP encoding and other SOAP functions.Created on: Jun 26, 2003
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase
HTTPSamplerBase.SourceType
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
MAINTAIN_SESSION_DEFAULT
-
Fields inherited from class org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase
ARGUMENTS, AUTH_MANAGER, AUTO_REDIRECTS, BROWSER_COMPATIBLE_MULTIPART, BROWSER_COMPATIBLE_MULTIPART_MODE_DEFAULT, CACHE_MANAGER, CONCURRENT_DWN, CONCURRENT_POOL, CONCURRENT_POOL_SIZE, CONNECT_TIMEOUT, CONTENT_ENCODING, CONTENT_TYPE, COOKIE_MANAGER, DEFAULT_METHOD, DNS_CACHE_MANAGER, DO_MULTIPART_POST, DOMAIN, EMBEDDED_URL_RE, FOLLOW_REDIRECTS, HEADER_MANAGER, IMAGE_PARSER, IMPLEMENTATION, IP_SOURCE, IP_SOURCE_TYPE, MAX_FRAME_DEPTH, MAX_REDIRECTS, METHOD, MONITOR, NON_HTTP_RESPONSE_CODE, NON_HTTP_RESPONSE_MESSAGE, PATH, PORT, POST_BODY_RAW, POST_BODY_RAW_DEFAULT, PROTOCOL, PROXYHOST, PROXYPASS, PROXYPORT, PROXYUSER, 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, CACHE_CONTROL, CONNECT, CONNECTION_CLOSE, COPY, DATE, 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_HOST, HEADER_LOCAL_ADDRESS, HEADER_LOCATION, HEADER_SET_COOKIE, HTTP_1_1, IF_MODIFIED_SINCE, IF_NONE_MATCH, KEEP_ALIVE, LAST_MODIFIED, LOCK, MKCALENDAR, MKCOL, MOVE, MULTIPART_FORM_DATA, OPTIONS, PATCH, POST, PROPFIND, PROPPATCH, PROTOCOL_HTTP, PROTOCOL_HTTPS, PUT, REPORT, TRACE, TRANSFER_ENCODING, UNLOCK
-
Fields inherited from interface org.apache.jmeter.testelement.TestElement
COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS
-
-
Constructor Summary
Constructors Constructor Description WebServiceSampler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEncodedArgument(String name, String value, String metaData)
We override this to prevent the wrong encoding and provide no implementation.String
convertSoapHeaders(Map<String,String> ht)
boolean
getMaintainSession()
Get the maintain session option.boolean
getMemoryCache()
Get the memory cache.String
getProxyHost()
Return the proxy hostnameint
getProxyPort()
Return the proxy portprotected String
getRandomFileName()
Method is used internally to check if a random file should be used for the message.boolean
getReadResponse()
Return whether or not to read the response.String
getSoapAction()
Return the soap action string.String
getTimeout()
int
getTimeoutAsInt()
boolean
getUseProxy()
Return whether or not to use proxyString
getWsdlURL()
method returns the WSDL URLString
getXmlData()
Get the XML data as a string.String
getXmlFile()
Get the file location of the xml file.String
getXmlPathLoc()
Get the path where XML messages are stored.SampleResult
sample()
Sample the URL using Apache SOAP driver.protected HTTPSampleResult
sample(URL u, String s, boolean b, int i)
Samples the URL passed in and stores the result inHTTPSampleResult
, following redirects and downloading page resources as appropriate.void
setMaintainSession(boolean maintainSession)
Set the maintain session option.void
setMemoryCache(boolean cache)
Set the memory cache.void
setProxyHost(String host)
Set the proxy hostnamevoid
setProxyPort(String port)
Set the proxy portvoid
setReadResponse(boolean read)
Set whether the sampler should read the response or not.void
setSoapAction(String data)
Set the soap action which should be in the form of an URN.void
setTimeout(String text)
void
setUseProxy(boolean proxy)
Set whether or not to use a proxyvoid
setWsdlURL(String url)
void
setXmlData(String data)
Set the XML data.void
setXmlFile(String filename)
it's kinda obvious, but we state it anyways.void
setXmlPathLoc(String path)
Set the path where XML messages are stored for random selection.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.-
Methods inherited from class org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase
addArgument, addArgument, addEncodedArgument, addEncodedArgument, addNonEncodedArgument, addTestElement, applies, clearTestElementChildren, clone, downloadPageResources, encodeBackSlashes, encodeSpaces, errorResult, followRedirects, getArguments, getAuthManager, getAutoRedirects, getCacheManager, getConcurrentPool, getConnectTimeout, getContentEncoding, getCookieManager, getDefaultPort, getDNSResolver, getDoBrowserCompatibleMultipart, getDomain, getDoMultipartPost, getEmbeddedUrlRE, getFollowRedirects, getHeaderManager, getHTTPFileCount, getHTTPFiles, getImplementation, getIpSource, getIpSourceType, getMethod, getMonitor, getPath, getPort, getPortIfSpecified, getPostBodyRaw, getProtocol, getProxyPass, getProxyPortInt, getProxyUser, getQueryString, getQueryString, getResponseTimeout, getSendFileAsPostBody, getSendParameterValuesAsPostBody, getSourceTypeList, getUrl, getUseKeepAlive, getUseMultipartForPost, getValidMethodsAsArray, hasArguments, isConcurrentDwn, isImageParser, isMonitor, isProtocolDefaultPort, isSecure, isSecure, isSuccessCode, parseArguments, parseArguments, readResponse, resultProcessing, sample, setArguments, setAuthManager, setAutoRedirects, setCacheManager, setConcurrentDwn, setConcurrentPool, setConnectTimeout, setContentEncoding, setCookieManager, setDNSResolver, setDoBrowserCompatibleMultipart, setDomain, setDoMultipartPost, setEmbeddedUrlRE, setFollowRedirects, setHeaderManager, setHTTPFiles, setImageParser, setImplementation, setIpSource, setIpSourceType, setMD5, setMethod, setMonitor, setMonitor, setPath, setPath, setPort, setPostBodyRaw, setProtocol, setResponseTimeout, setUseKeepAlive, testIterationStart, testStarted, testStarted, threadFinished, threadStarted, toString, useMD5
-
Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement
addPropertiesValues, addProperty, addProperty, canRemove, clear, clearTemporary, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, 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, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse
-
-
-
-
Field Detail
-
MAINTAIN_SESSION_DEFAULT
public static final boolean MAINTAIN_SESSION_DEFAULT
- See Also:
- Constant Field Values
-
-
Method Detail
-
setXmlPathLoc
public void setXmlPathLoc(String path)
Set the path where XML messages are stored for random selection.- Parameters:
path
- where XML messages are stored
-
getXmlPathLoc
public String getXmlPathLoc()
Get the path where XML messages are stored. This is the directory where JMeter will randomly select a file.- Returns:
- path where XML messages are stored
-
setXmlFile
public void setXmlFile(String filename)
it's kinda obvious, but we state it anyways. Set the xml file with a string path.- Parameters:
filename
- path to xml file
-
getXmlFile
public String getXmlFile()
Get the file location of the xml file.- Returns:
- String file path.
-
getRandomFileName
protected String getRandomFileName()
Method is used internally to check if a random file should be used for the message. Messages must be valid. This is one way to load test with different messages. The limitation of this approach is parsing XML takes CPU resources, so it could affect JMeter GUI responsiveness.- Returns:
- String filename
-
setXmlData
public void setXmlData(String data)
Set the XML data.- Parameters:
data
- xml data
-
getXmlData
public String getXmlData()
Get the XML data as a string.- Returns:
- String data
-
setSoapAction
public void setSoapAction(String data)
Set the soap action which should be in the form of an URN.- Parameters:
data
- soap action
-
getSoapAction
public String getSoapAction()
Return the soap action string.- Returns:
- String soap action
-
setMaintainSession
public void setMaintainSession(boolean maintainSession)
Set the maintain session option.- Parameters:
maintainSession
- flag whether to maintain a session
-
getMaintainSession
public boolean getMaintainSession()
Get the maintain session option.- Returns:
- flag whether to maintain a session
-
setMemoryCache
public void setMemoryCache(boolean cache)
Set the memory cache.- Parameters:
cache
- flag whether to use the memory cache
-
getMemoryCache
public boolean getMemoryCache()
Get the memory cache.- Returns:
- flag whether to use the memory cache
-
setReadResponse
public void setReadResponse(boolean read)
Set whether the sampler should read the response or not.- Parameters:
read
- flag whether the response should be read
-
getReadResponse
public boolean getReadResponse()
Return whether or not to read the response.- Returns:
- flag whether the response should be read
-
setUseProxy
public void setUseProxy(boolean proxy)
Set whether or not to use a proxy- Parameters:
proxy
- flag whether to use a proxy
-
getUseProxy
public boolean getUseProxy()
Return whether or not to use proxy- Returns:
true
if a proxy should be used
-
setProxyHost
public void setProxyHost(String host)
Set the proxy hostname- Parameters:
host
- the hostname of the proxy
-
getProxyHost
public String getProxyHost()
Return the proxy hostname- Overrides:
getProxyHost
in classHTTPSamplerBase
- Returns:
- the proxy hostname
-
setProxyPort
public void setProxyPort(String port)
Set the proxy port- Parameters:
port
- the port of the proxy
-
getProxyPort
public int getProxyPort()
Return the proxy port- Returns:
- the proxy port
-
setWsdlURL
public void setWsdlURL(String url)
- Parameters:
url
- the URL of the WSDL
-
getWsdlURL
public String getWsdlURL()
method returns the WSDL URL- Returns:
- the WSDL URL
-
sample
protected HTTPSampleResult sample(URL u, String s, boolean b, int i)
Description copied from class:HTTPSamplerBase
Samples the URL passed in and stores the result inHTTPSampleResult
, 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 classHTTPSamplerBase
- Parameters:
u
- URL to samples
- HTTP method: GET, POST,...b
- whether we're getting a redirect targeti
- Depth of this target in the frame structure. Used only to prevent infinite recursion.- Returns:
- results of the sampling, can be null if u is in CacheManager
-
sample
public SampleResult sample()
Sample the URL using Apache SOAP driver. Implementation note for myself and those that are curious. Current logic marks the end after the response has been read. If read response is set to false, the buffered reader will read, but do nothing with it. Essentially, the stream from the server goes into the ether.- Overrides:
sample
in classHTTPSamplerBase
- Returns:
- results of the sampling
-
addEncodedArgument
public void addEncodedArgument(String name, String value, String metaData)
We override this to prevent the wrong encoding and provide no implementation. We want to reuse the other parts of HTTPSampler, but not the connection. The connection is handled by the Apache SOAP driver.- Overrides:
addEncodedArgument
in classHTTPSamplerBase
-
getTimeout
public String getTimeout()
-
getTimeoutAsInt
public int getTimeoutAsInt()
-
setTimeout
public void setTimeout(String text)
-
testEnded
public void testEnded()
Description copied from class:HTTPSamplerBase
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.
- Specified by:
testEnded
in interfaceTestStateListener
- Overrides:
testEnded
in classHTTPSamplerBase
- See Also:
StandardJMeterEngine.stopTest()
-
testEnded
public void testEnded(String host)
Description copied from class:HTTPSamplerBase
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.
- Specified by:
testEnded
in interfaceTestStateListener
- Overrides:
testEnded
in classHTTPSamplerBase
- Parameters:
host
- name of host- See Also:
StandardJMeterEngine.stopTest()
-
-