You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2009/11/30 03:09:57 UTC
svn commit: r885312 - in /jakarta/jmeter/trunk:
docs/images/screenshots/webtest/ src/core/org/apache/jmeter/resources/
src/protocol/http/org/apache/jmeter/protocol/http/control/gui/
src/protocol/http/org/apache/jmeter/protocol/http/sampler/ xdocs/ xdoc...
Author: sebb
Date: Mon Nov 30 02:09:55 2009
New Revision: 885312
URL: http://svn.apache.org/viewvc?rev=885312&view=rev
Log:
Bug 48300 - Allow override of IP source address for HTTP HttpClient requests
Modified:
jakarta/jmeter/trunk/docs/images/screenshots/webtest/http-request.png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
jakarta/jmeter/trunk/xdocs/changes.xml
jakarta/jmeter/trunk/xdocs/images/screenshots/webtest/http-request.png
jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
Modified: jakarta/jmeter/trunk/docs/images/screenshots/webtest/http-request.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/webtest/http-request.png?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
Binary files - no diff available.
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Mon Nov 30 02:09:55 2009
@@ -923,6 +923,7 @@
web_server_client=Client implementation:
web_server_domain=Server Name or IP\:
web_server_port=Port Number\:
+web_testing2_source_ip=Source IP address:
web_testing2_title=HTTP Request HTTPClient
web_testing_embedded_url_pattern=Embedded URLs must match\:
web_testing_retrieve_images=Retrieve All Embedded Resources from HTML Files
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Mon Nov 30 02:09:55 2009
@@ -789,6 +789,7 @@
web_server_timeout_connect=Connexion \:
web_server_timeout_response=R\u00E9ponse \:
web_server_timeout_title=D\u00E9lai expiration (ms)
+web_testing2_source_ip=Adresse IP source \:
web_testing2_title=Requ\u00EAte HTTP HTTPClient
web_testing_embedded_url_pattern=Les URL \u00E0 inclure doivent correspondre \u00E0 \:
web_testing_retrieve_images=R\u00E9cup\u00E9rer les ressources incluses
Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java Mon Nov 30 02:09:55 2009
@@ -113,7 +113,7 @@
add(createOptionalTasksPanel(), BorderLayout.SOUTH);
}
- private JPanel createOptionalTasksPanel() {
+ protected JPanel createOptionalTasksPanel() {
// OPTIONAL TASKS
JPanel optionalTasksPanel = new VerticalPanel();
optionalTasksPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), JMeterUtils
@@ -134,7 +134,7 @@
// Embedded URL match regex
embeddedRE = new JLabeledTextField(JMeterUtils.getResString("web_testing_embedded_url_pattern"),30); // $NON-NLS-1$
- optionalTasksPanel.add(embeddedRE);
+ optionalTasksPanel.add(embeddedRE, BorderLayout.CENTER);
return optionalTasksPanel;
}
Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java Mon Nov 30 02:09:55 2009
@@ -18,15 +18,24 @@
package org.apache.jmeter.protocol.http.control.gui;
-import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
+import java.awt.BorderLayout;
+import javax.swing.JPanel;
+
+import org.apache.jmeter.protocol.http.sampler.HTTPSampler2;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
+import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.JLabeledTextField;
/**
* HTTP Sampler GUI for Apache HTTPClient HTTP implementation
*/
public class HttpTestSampleGui2 extends HttpTestSampleGui {
+
+ private static final long serialVersionUID = 240L;
+
+ private JLabeledTextField sourceIpAddr;
public HttpTestSampleGui2() {
super();
@@ -51,4 +60,44 @@
return super.getStaticLabel().replace(' ', '_'); // $NON-NLS-1$ // $NON-NLS-2$
}
+ @Override
+ protected JPanel createOptionalTasksPanel() {
+ JPanel optionalTasksPanel = super.createOptionalTasksPanel();
+ // Add a new field source ip address
+ sourceIpAddr = new JLabeledTextField(JMeterUtils
+ .getResString("web_testing2_source_ip"), 15); // $NON-NLS-1$
+ optionalTasksPanel.add(sourceIpAddr, BorderLayout.EAST);
+
+ return optionalTasksPanel;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui#clearGui()
+ */
+ @Override
+ public void clearGui() {
+ super.clearGui();
+ sourceIpAddr.setText(""); // $NON-NLS-1$
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui#configure(org.apache.jmeter.testelement.TestElement)
+ */
+ @Override
+ public void configure(TestElement element) {
+ super.configure(element);
+ final HTTPSampler2 samplerBase = (HTTPSampler2) element;
+ sourceIpAddr.setText(samplerBase.getIpSource());
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui#modifyTestElement(org.apache.jmeter.testelement.TestElement)
+ */
+ @Override
+ public void modifyTestElement(TestElement sampler) {
+ // TODO Auto-generated method stub
+ super.modifyTestElement(sampler);
+ final HTTPSampler2 samplerBase = (HTTPSampler2) sampler;
+ samplerBase.setIpSource(sourceIpAddr.getText());
+ }
}
Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java Mon Nov 30 02:09:55 2009
@@ -119,6 +119,8 @@
private static final String PROXY_DOMAIN =
JMeterUtils.getPropDefault("http.proxyDomain",""); // $NON-NLS-1$ $NON-NLS-2$
+
+ public static final String IP_SOURCE = "HTTPSampler.ipSource"; // $NON-NLS-1$
static final InetAddress localAddress;
@@ -536,6 +538,12 @@
// Set up the local address if one exists
if (localAddress != null){
hc.setLocalAddress(localAddress);
+ } else {
+ final String ipSource = getIpSource();
+ if (ipSource.length() > 0) {// Use special field ip source address (for pseudo 'ip spoofing')
+ InetAddress inetAddr = InetAddress.getByName(ipSource);
+ hc.setLocalAddress(inetAddr);
+ }
}
boolean useStaticProxy = PROXY_DEFINED && !isNonProxy(host);
@@ -1162,4 +1170,13 @@
}
return client != null;
}
+
+
+ public void setIpSource(String value) {
+ setProperty(IP_SOURCE, value, "");
+ }
+
+ public String getIpSource() {
+ return getPropertyAsString(IP_SOURCE,"");
+ }
}
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Mon Nov 30 02:09:55 2009
@@ -120,6 +120,7 @@
<li>Bug 47461 - Update Cache Manager to handle Expires HTTP header</li>
<li>Bug 48153 - Support for Cache-Control and Expires headers</li>
<li>Bug 47946 - Proxy should enable Grouping inside a Transaction Controller</li>
+<li>Bug 48300 - Allow override of IP source address for HTTP HttpClient requests</li>
</ul>
<h3>Other samplers</h3>
Modified: jakarta/jmeter/trunk/xdocs/images/screenshots/webtest/http-request.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/webtest/http-request.png?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
Binary files - no diff available.
Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=885312&r1=885311&r2=885312&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Mon Nov 30 02:09:55 2009
@@ -81,7 +81,7 @@
</component>
-<component name="HTTP Request" index="§-num;.1.2" width="730" height="618" screenshot="webtest/http-request.png">
+<component name="HTTP Request" index="§-num;.1.2" width="735" height="646" screenshot="webtest/http-request.png">
<description>
<p>This sampler lets you send an HTTP/HTTPS request to a web server. It
@@ -176,6 +176,10 @@
<property name="Port" required="No">Port the web server is listening to. Default: 80</property>
<property name="Connect Timeout" required="No">Connection Timeout. Number of milliseconds to wait for a connection to open.</property>
<property name="Response Timeout" required="No">Response Timeout. Number of milliseconds to wait for a response.</property>
+ <property name="Server (proxy)" required="No">Hostname or IP address of a proxy server to perform request. [Do not include the http:// prefix.]</property>
+ <property name="Port" required="No">Port the proxy server is listening to.</property>
+ <property name="Username" required="No">(Optional) username for proxy server.</property>
+ <property name="Password" required="No">(Optional) password for proxy server.</property>
<property name="Protocol" required="No">HTTP, HTTPS or FILE. Default: HTTP</property>
<property name="Method" required="Yes">GET, POST, HEAD, TRACE, OPTIONS, PUT, DELETE</property>
<property name="Content Encoding" required="No">Content encoding to be used (for POST and FILE)</property>
@@ -252,6 +256,12 @@
So if you only want to download embedded resources from http://example.com/, use the expression:
http://example\.com/.*
</property>
+ <property name="Source IP address:" required="No">
+ [Only for HTTP Request HTTPClient]
+ Override the default local IP address for this sample.
+ The JMeter host must have multiple IP addresses (i.e. IP aliases or network interfaces).
+ If the property <b>httpclient.localaddress</b> is defined, that is used for all HttpClient requests.
+ </property>
</properties>
<p>
<b>N.B.</b> when using Automatic Redirection, cookies are only sent for the initial URL.
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org