Author: pmouawad
Date: Mon Jan 2 23:55:21 2017
New Revision: 1777041
URL: http://svn.apache.org/viewvc?rev=1777041&view=rev
Log:
Bug 60543 - HTTP Request / Http Request Defaults UX: Move to advanced panel
Timeouts, Implementation, Proxy
Bugzilla Id: 60543
Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
jmeter/trunk/xdocs/changes.xml
Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java?rev=1777041&r1=1777040&r2=1777041&view=diff
==============================================================================
---
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java
(original)
+++
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java
Mon Jan 2 23:55:21 2017
@@ -20,15 +20,19 @@ package org.apache.jmeter.protocol.http.
import java.awt.BorderLayout;
import java.awt.Dimension;
+import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
+import javax.swing.JLabel;
import javax.swing.JPanel;
+import javax.swing.JPasswordField;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
+import javax.swing.UIManager;
import org.apache.commons.lang3.StringUtils;
import org.apache.jmeter.config.ConfigTestElement;
@@ -36,12 +40,14 @@ import org.apache.jmeter.config.gui.Abst
import org.apache.jmeter.gui.util.HorizontalPanel;
import org.apache.jmeter.gui.util.VerticalPanel;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
+import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
import org.apache.jmeter.testelement.AbstractTestElement;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.property.BooleanProperty;
import org.apache.jmeter.testelement.property.IntegerProperty;
import org.apache.jmeter.testelement.property.StringProperty;
import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.JLabeledChoice;
import org.apache.jorphan.gui.JLabeledTextField;
/**
@@ -52,6 +58,10 @@ public class HttpDefaultsGui extends Abs
private static final long serialVersionUID = 241L;
+ private static final Font FONT_DEFAULT =
UIManager.getDefaults().getFont("TextField.font");
+
+ private static final Font FONT_SMALL = new Font("SansSerif", Font.PLAIN,
(int) Math.round(FONT_DEFAULT.getSize() * 0.8));
+
private UrlConfigGui urlConfigGui;
private JCheckBox retrieveEmbeddedResources;
@@ -68,6 +78,21 @@ public class HttpDefaultsGui extends Abs
private JComboBox<String> sourceIpType = new
JComboBox<>(HTTPSamplerBase.getSourceTypeList());
+ private JTextField proxyHost;
+
+ private JTextField proxyPort;
+
+ private JTextField proxyUser;
+
+ private JPasswordField proxyPass;
+
+ private JLabeledChoice httpImplementation;
+
+ private JTextField connectTimeOut;
+
+ private JTextField responseTimeOut;
+
+
public HttpDefaultsGui() {
super();
init();
@@ -141,6 +166,15 @@ public class HttpDefaultsGui extends Abs
config.removeProperty(HTTPSamplerBase.IP_SOURCE);
config.removeProperty(HTTPSamplerBase.IP_SOURCE_TYPE);
}
+
+ config.setProperty(HTTPSamplerBase.PROXYHOST, proxyHost.getText(),"");
+ config.setProperty(HTTPSamplerBase.PROXYPORT, proxyPort.getText(),"");
+ config.setProperty(HTTPSamplerBase.PROXYUSER, proxyUser.getText(),"");
+ config.setProperty(HTTPSamplerBase.PROXYPASS,
String.valueOf(proxyPass.getPassword()),"");
+ config.setProperty(HTTPSamplerBase.IMPLEMENTATION,
httpImplementation.getText(),"");
+ config.setProperty(HTTPSamplerBase.CONNECT_TIMEOUT,
connectTimeOut.getText());
+ config.setProperty(HTTPSamplerBase.RESPONSE_TIMEOUT,
responseTimeOut.getText());
+
}
/**
@@ -158,6 +192,13 @@ public class HttpDefaultsGui extends Abs
embeddedRE.setText(""); // $NON-NLS-1$
sourceIpAddr.setText(""); // $NON-NLS-1$
sourceIpType.setSelectedIndex(HTTPSamplerBase.SourceType.HOSTNAME.ordinal());
//default: IP/Hostname
+ proxyHost.setText(""); // $NON-NLS-1$
+ proxyPort.setText(""); // $NON-NLS-1$
+ proxyUser.setText(""); // $NON-NLS-1$
+ proxyPass.setText(""); // $NON-NLS-1$
+ httpImplementation.setText(""); // $NON-NLS-1$
+ connectTimeOut.setText(""); // $NON-NLS-1$
+ responseTimeOut.setText(""); // $NON-NLS-1$
}
@Override
@@ -174,6 +215,14 @@ public class HttpDefaultsGui extends Abs
sourceIpType.setSelectedIndex(
samplerBase.getPropertyAsInt(HTTPSamplerBase.IP_SOURCE_TYPE,
HTTPSamplerBase.SOURCE_TYPE_DEFAULT));
+
+
proxyHost.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.PROXYHOST));
+
proxyPort.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.PROXYPORT));
+
proxyUser.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.PROXYUSER));
+
proxyPass.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.PROXYPASS));
+
httpImplementation.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.IMPLEMENTATION));
+
connectTimeOut.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.CONNECT_TIMEOUT));
+
responseTimeOut.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.RESPONSE_TIMEOUT));
}
private void init() { // WARNING: called from ctor so must not be
overridden (i.e. must be private or final)
@@ -186,7 +235,10 @@ public class HttpDefaultsGui extends Abs
// AdvancedPanel (embedded resources, source address and optional
tasks)
JPanel advancedPanel = new VerticalPanel();
advancedPanel.add(createEmbeddedRsrcPanel());
+ advancedPanel.add(getTimeOutPanel());
+ advancedPanel.add(getImplementationPanel());
advancedPanel.add(createSourceAddrPanel());
+ advancedPanel.add(getProxyServerPanel());
advancedPanel.add(createOptionalTasksPanel());
JTabbedPane tabbedPane = new JTabbedPane();
@@ -203,6 +255,43 @@ public class HttpDefaultsGui extends Abs
add(emptyPanel, BorderLayout.SOUTH);
}
+ private JPanel getTimeOutPanel() {
+ JPanel timeOut = new HorizontalPanel();
+
timeOut.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
+ JMeterUtils.getResString("web_server_timeout_title"))); //
$NON-NLS-1$
+ final JPanel connPanel = getConnectTimeOutPanel();
+ final JPanel reqPanel = getResponseTimeOutPanel();
+ timeOut.add(connPanel);
+ timeOut.add(reqPanel);
+ return timeOut;
+ }
+
+ private JPanel getConnectTimeOutPanel() {
+ connectTimeOut = new JTextField(10);
+
+ JLabel label = new
JLabel(JMeterUtils.getResString("web_server_timeout_connect")); // $NON-NLS-1$
+ label.setLabelFor(connectTimeOut);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(connectTimeOut, BorderLayout.CENTER);
+
+ return panel;
+ }
+
+ private JPanel getResponseTimeOutPanel() {
+ responseTimeOut = new JTextField(10);
+
+ JLabel label = new
JLabel(JMeterUtils.getResString("web_server_timeout_response")); // $NON-NLS-1$
+ label.setLabelFor(responseTimeOut);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(responseTimeOut, BorderLayout.CENTER);
+
+ return panel;
+ }
+
protected JPanel createEmbeddedRsrcPanel() {
// retrieve Embedded resources
retrieveEmbeddedResources = new
JCheckBox(JMeterUtils.getResString("web_testing_retrieve_images")); //
$NON-NLS-1$
@@ -286,4 +375,94 @@ public class HttpDefaultsGui extends Abs
embeddedRE.setEnabled(false);
}
}
+
+ /**
+ * Create a panel containing the implementation details
+ *
+ * @return the panel
+ */
+ protected final JPanel getImplementationPanel(){
+ JPanel implPanel = new HorizontalPanel();
+ httpImplementation = new
JLabeledChoice(JMeterUtils.getResString("http_implementation"), // $NON-NLS-1$
+ HTTPSamplerFactory.getImplementations());
+ httpImplementation.addValue("");
+ implPanel.add(httpImplementation);
+ return implPanel;
+ }
+
+ /**
+ * Create a panel containing the proxy server details
+ *
+ * @return the panel
+ */
+ protected final JPanel getProxyServerPanel(){
+ JPanel proxyServer = new HorizontalPanel();
+ proxyServer.add(getProxyHostPanel(), BorderLayout.CENTER);
+ proxyServer.add(getProxyPortPanel(), BorderLayout.EAST);
+
+ JPanel proxyLogin = new HorizontalPanel();
+ proxyLogin.add(getProxyUserPanel());
+ proxyLogin.add(getProxyPassPanel());
+
+ JPanel proxyServerPanel = new HorizontalPanel();
+
proxyServerPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
+ JMeterUtils.getResString("web_proxy_server_title"))); //
$NON-NLS-1$
+ proxyServerPanel.add(proxyServer);
+ proxyServerPanel.add(proxyLogin);
+
+ return proxyServerPanel;
+ }
+
+ private JPanel getProxyHostPanel() {
+ proxyHost = new JTextField(10);
+
+ JLabel label = new
JLabel(JMeterUtils.getResString("web_server_domain")); // $NON-NLS-1$
+ label.setLabelFor(proxyHost);
+ label.setFont(FONT_SMALL);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(proxyHost, BorderLayout.CENTER);
+ return panel;
+ }
+
+ private JPanel getProxyPortPanel() {
+ proxyPort = new JTextField(10);
+
+ JLabel label = new
JLabel(JMeterUtils.getResString("web_server_port")); // $NON-NLS-1$
+ label.setLabelFor(proxyPort);
+ label.setFont(FONT_SMALL);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(proxyPort, BorderLayout.CENTER);
+
+ return panel;
+ }
+
+ private JPanel getProxyUserPanel() {
+ proxyUser = new JTextField(5);
+
+ JLabel label = new JLabel(JMeterUtils.getResString("username")); //
$NON-NLS-1$
+ label.setLabelFor(proxyUser);
+ label.setFont(FONT_SMALL);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(proxyUser, BorderLayout.CENTER);
+ return panel;
+ }
+
+ private JPanel getProxyPassPanel() {
+ proxyPass = new JPasswordField(5);
+
+ JLabel label = new JLabel(JMeterUtils.getResString("password")); //
$NON-NLS-1$
+ label.setLabelFor(proxyPass);
+ label.setFont(FONT_SMALL);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(proxyPass, BorderLayout.CENTER);
+ return panel;
+ }
}
Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java?rev=1777041&r1=1777040&r2=1777041&view=diff
==============================================================================
---
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
(original)
+++
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
Mon Jan 2 23:55:21 2017
@@ -24,15 +24,11 @@ import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.BorderFactory;
-import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
-import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
-import javax.swing.JPasswordField;
import javax.swing.JTabbedPane;
-import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@@ -43,11 +39,9 @@ import org.apache.jmeter.config.ConfigTe
import org.apache.jmeter.gui.util.HorizontalPanel;
import org.apache.jmeter.gui.util.JSyntaxTextArea;
import org.apache.jmeter.gui.util.JTextScrollPane;
-import org.apache.jmeter.gui.util.VerticalPanel;
import org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel;
import org.apache.jmeter.protocol.http.gui.HTTPFileArgsPanel;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
-import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
import org.apache.jmeter.protocol.http.util.HTTPArgument;
import org.apache.jmeter.protocol.http.util.HTTPConstants;
import org.apache.jmeter.testelement.TestElement;
@@ -56,6 +50,7 @@ import org.apache.jmeter.testelement.pro
import org.apache.jmeter.testelement.property.TestElementProperty;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.gui.JLabeledChoice;
+import org.apache.jorphan.gui.JLabeledTextField;
/**
* Basic URL / HTTP Request configuration:
@@ -84,27 +79,15 @@ public class UrlConfigGui extends JPanel
private HTTPFileArgsPanel filesPanel;
- private JTextField domain;
+ private JLabeledTextField domain;
- private JTextField port;
+ private JLabeledTextField port;
- private JTextField proxyHost;
+ private JLabeledTextField protocol;
- private JTextField proxyPort;
+ private JLabeledTextField contentEncoding;
- private JTextField proxyUser;
-
- private JPasswordField proxyPass;
-
- private JTextField connectTimeOut;
-
- private JTextField responseTimeOut;
-
- private JTextField protocol;
-
- private JTextField contentEncoding;
-
- private JTextField path;
+ private JLabeledTextField path;
private JCheckBox followRedirects;
@@ -118,13 +101,9 @@ public class UrlConfigGui extends JPanel
private JLabeledChoice method;
- private JLabeledChoice httpImplementation;
-
// set this false to suppress some items for use in HTTP Request defaults
private final boolean notConfigOnly;
- private final boolean showImplementation; // Set false for AJP
-
// Body data
private JSyntaxTextArea postBodyContent;
@@ -149,33 +128,28 @@ public class UrlConfigGui extends JPanel
* flag whether sampler fields should be shown.
*/
public UrlConfigGui(boolean showSamplerFields) {
- this(showSamplerFields, true, true);
+ this(showSamplerFields, true);
}
/**
* @param showSamplerFields
* flag whether sampler fields should be shown
- * @param showImplementation
- * Show HTTP Implementation
* @param showRawBodyPane
* flag whether the raw body pane should be shown
*/
- public UrlConfigGui(boolean showSamplerFields, boolean showImplementation,
boolean showRawBodyPane) {
- this(showSamplerFields, showImplementation, showRawBodyPane, false);
+ public UrlConfigGui(boolean showSamplerFields, boolean showRawBodyPane) {
+ this(showSamplerFields, showRawBodyPane, false);
}
/**
* @param showSamplerFields
* flag whether sampler fields should be shown
- * @param showImplementation
- * Show HTTP Implementation
* @param showRawBodyPane
* flag whether the raw body pane should be shown
* @param showFileUploadPane flag whether the file upload pane should be
shown
*/
- public UrlConfigGui(boolean showSamplerFields, boolean showImplementation,
boolean showRawBodyPane, boolean showFileUploadPane) {
+ public UrlConfigGui(boolean showSamplerFields, boolean showRawBodyPane,
boolean showFileUploadPane) {
this.notConfigOnly = showSamplerFields;
- this.showImplementation = showImplementation;
this.showRawBodyPane = showRawBodyPane;
this.showFileUploadPane = showFileUploadPane;
init();
@@ -191,17 +165,8 @@ public class UrlConfigGui extends JPanel
useMultipartForPost.setSelected(false);
useBrowserCompatibleMultipartMode.setSelected(HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART_MODE_DEFAULT);
}
- if (showImplementation) {
- httpImplementation.setText(""); // $NON-NLS-1$
- }
path.setText(""); // $NON-NLS-1$
port.setText(""); // $NON-NLS-1$
- proxyHost.setText(""); // $NON-NLS-1$
- proxyPort.setText(""); // $NON-NLS-1$
- proxyUser.setText(""); // $NON-NLS-1$
- proxyPass.setText(""); // $NON-NLS-1$
- connectTimeOut.setText(""); // $NON-NLS-1$
- responseTimeOut.setText(""); // $NON-NLS-1$
protocol.setText(""); // $NON-NLS-1$
contentEncoding.setText(""); // $NON-NLS-1$
argsPanel.clear();
@@ -256,12 +221,6 @@ public class UrlConfigGui extends JPanel
element.setProperty(new TestElementProperty(HTTPSamplerBase.ARGUMENTS,
args));
element.setProperty(HTTPSamplerBase.DOMAIN, domain.getText());
element.setProperty(HTTPSamplerBase.PORT, port.getText());
- element.setProperty(HTTPSamplerBase.PROXYHOST, proxyHost.getText(),"");
- element.setProperty(HTTPSamplerBase.PROXYPORT, proxyPort.getText(),"");
- element.setProperty(HTTPSamplerBase.PROXYUSER, proxyUser.getText(),"");
- element.setProperty(HTTPSamplerBase.PROXYPASS,
String.valueOf(proxyPass.getPassword()),"");
- element.setProperty(HTTPSamplerBase.CONNECT_TIMEOUT,
connectTimeOut.getText());
- element.setProperty(HTTPSamplerBase.RESPONSE_TIMEOUT,
responseTimeOut.getText());
element.setProperty(HTTPSamplerBase.PROTOCOL, protocol.getText());
element.setProperty(HTTPSamplerBase.CONTENT_ENCODING,
contentEncoding.getText());
element.setProperty(HTTPSamplerBase.PATH, path.getText());
@@ -273,9 +232,6 @@ public class UrlConfigGui extends JPanel
element.setProperty(new
BooleanProperty(HTTPSamplerBase.DO_MULTIPART_POST,
useMultipartForPost.isSelected()));
element.setProperty(HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART,
useBrowserCompatibleMultipartMode.isSelected(),HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART_MODE_DEFAULT);
}
- if (showImplementation) {
- element.setProperty(HTTPSamplerBase.IMPLEMENTATION,
httpImplementation.getText(),"");
- }
}
// FIXME FACTOR WITH HTTPHC4Impl, HTTPHC3Impl
@@ -342,12 +298,6 @@ public class UrlConfigGui extends JPanel
} else {
port.setText(portString);
}
- proxyHost.setText(el.getPropertyAsString(HTTPSamplerBase.PROXYHOST));
- proxyPort.setText(el.getPropertyAsString(HTTPSamplerBase.PROXYPORT));
- proxyUser.setText(el.getPropertyAsString(HTTPSamplerBase.PROXYUSER));
- proxyPass.setText(el.getPropertyAsString(HTTPSamplerBase.PROXYPASS));
-
connectTimeOut.setText(el.getPropertyAsString(HTTPSamplerBase.CONNECT_TIMEOUT));
-
responseTimeOut.setText(el.getPropertyAsString(HTTPSamplerBase.RESPONSE_TIMEOUT));
protocol.setText(el.getPropertyAsString(HTTPSamplerBase.PROTOCOL));
contentEncoding.setText(el.getPropertyAsString(HTTPSamplerBase.CONTENT_ENCODING));
path.setText(el.getPropertyAsString(HTTPSamplerBase.PATH));
@@ -360,9 +310,6 @@ public class UrlConfigGui extends JPanel
useBrowserCompatibleMultipartMode.setSelected(el.getPropertyAsBoolean(
HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART,
HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART_MODE_DEFAULT));
}
- if (showImplementation) {
-
httpImplementation.setText(el.getPropertyAsString(HTTPSamplerBase.IMPLEMENTATION));
- }
}
private void init() {// called from ctor, so must not be overridable
@@ -374,190 +321,52 @@ public class UrlConfigGui extends JPanel
webRequestPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
JMeterUtils.getResString("web_request"))); // $NON-NLS-1$
- JPanel northPanel = new JPanel();
- northPanel.setLayout(new BoxLayout(northPanel, BoxLayout.Y_AXIS));
- northPanel.add(getProtocolAndMethodPanel());
- northPanel.add(getPathPanel());
-
- webRequestPanel.add(northPanel, BorderLayout.NORTH);
+ webRequestPanel.add(getPathPanel(), BorderLayout.NORTH);
webRequestPanel.add(getParameterPanel(), BorderLayout.CENTER);
- this.add(getWebServerTimeoutPanel(), BorderLayout.NORTH);
+ this.add(getWebServerPanel(), BorderLayout.NORTH);
this.add(webRequestPanel, BorderLayout.CENTER);
- this.add(getProxyServerPanel(), BorderLayout.SOUTH);
}
/**
- * Create a panel containing the webserver (domain+port) and timeouts
(connect+request).
+ * Create a panel containing the webserver (domain+port) and scheme.
*
* @return the panel
*/
- protected final JPanel getWebServerTimeoutPanel() {
- // WEB SERVER PANEL
+ protected final JPanel getWebServerPanel() {
+ // PROTOCOL
+ protocol = new JLabeledTextField(JMeterUtils.getResString("protocol"),
4); // $NON-NLS-1$
+ port = new
JLabeledTextField(JMeterUtils.getResString("web_server_port"), 7); //
$NON-NLS-1$
+ domain = new
JLabeledTextField(JMeterUtils.getResString("web_server_domain"), 40); //
$NON-NLS-1$
+
JPanel webServerPanel = new HorizontalPanel();
webServerPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
JMeterUtils.getResString("web_server"))); // $NON-NLS-1$
- final JPanel domainPanel = getDomainPanel();
- final JPanel portPanel = getPortPanel();
- webServerPanel.add(domainPanel, BorderLayout.CENTER);
- webServerPanel.add(portPanel, BorderLayout.EAST);
-
- JPanel timeOut = new HorizontalPanel();
-
timeOut.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
- JMeterUtils.getResString("web_server_timeout_title"))); //
$NON-NLS-1$
- final JPanel connPanel = getConnectTimeOutPanel();
- final JPanel reqPanel = getResponseTimeOutPanel();
- timeOut.add(connPanel);
- timeOut.add(reqPanel);
-
- JPanel webServerTimeoutPanel = new VerticalPanel();
- webServerTimeoutPanel.add(webServerPanel, BorderLayout.CENTER);
- webServerTimeoutPanel.add(timeOut, BorderLayout.EAST);
-
- JPanel bigPanel = new VerticalPanel();
- bigPanel.add(webServerTimeoutPanel);
- return bigPanel;
- }
-
- /**
- * Create a panel containing the proxy server details
- *
- * @return the panel
- */
- protected final JPanel getProxyServerPanel(){
- JPanel proxyServer = new HorizontalPanel();
- proxyServer.add(getProxyHostPanel(), BorderLayout.CENTER);
- proxyServer.add(getProxyPortPanel(), BorderLayout.EAST);
-
- JPanel proxyLogin = new HorizontalPanel();
- proxyLogin.add(getProxyUserPanel());
- proxyLogin.add(getProxyPassPanel());
-
- JPanel proxyServerPanel = new HorizontalPanel();
-
proxyServerPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
- JMeterUtils.getResString("web_proxy_server_title"))); //
$NON-NLS-1$
- proxyServerPanel.add(proxyServer);
- proxyServerPanel.add(proxyLogin);
-
- return proxyServerPanel;
- }
-
- private JPanel getPortPanel() {
- port = new JTextField(10);
-
- JLabel label = new
JLabel(JMeterUtils.getResString("web_server_port")); // $NON-NLS-1$
- label.setLabelFor(port);
-
- JPanel panel = new JPanel(new BorderLayout(5, 0));
- panel.add(label, BorderLayout.WEST);
- panel.add(port, BorderLayout.CENTER);
-
- return panel;
- }
-
- private JPanel getProxyPortPanel() {
- proxyPort = new JTextField(10);
-
- JLabel label = new
JLabel(JMeterUtils.getResString("web_server_port")); // $NON-NLS-1$
- label.setLabelFor(proxyPort);
- label.setFont(FONT_SMALL);
-
- JPanel panel = new JPanel(new BorderLayout(5, 0));
- panel.add(label, BorderLayout.WEST);
- panel.add(proxyPort, BorderLayout.CENTER);
-
- return panel;
- }
-
- private JPanel getConnectTimeOutPanel() {
- connectTimeOut = new JTextField(10);
-
- JLabel label = new
JLabel(JMeterUtils.getResString("web_server_timeout_connect")); // $NON-NLS-1$
- label.setLabelFor(connectTimeOut);
-
- JPanel panel = new JPanel(new BorderLayout(5, 0));
- panel.add(label, BorderLayout.WEST);
- panel.add(connectTimeOut, BorderLayout.CENTER);
-
- return panel;
- }
-
- private JPanel getResponseTimeOutPanel() {
- responseTimeOut = new JTextField(10);
-
- JLabel label = new
JLabel(JMeterUtils.getResString("web_server_timeout_response")); // $NON-NLS-1$
- label.setLabelFor(responseTimeOut);
-
- JPanel panel = new JPanel(new BorderLayout(5, 0));
- panel.add(label, BorderLayout.WEST);
- panel.add(responseTimeOut, BorderLayout.CENTER);
-
- return panel;
+ webServerPanel.add(protocol);
+ webServerPanel.add(domain);
+ webServerPanel.add(port);
+ return webServerPanel;
}
- private JPanel getDomainPanel() {
- domain = new JTextField(20);
-
- JLabel label = new
JLabel(JMeterUtils.getResString("web_server_domain")); // $NON-NLS-1$
- label.setLabelFor(domain);
-
- JPanel panel = new JPanel(new BorderLayout(5, 0));
- panel.add(label, BorderLayout.WEST);
- panel.add(domain, BorderLayout.CENTER);
- return panel;
- }
-
- private JPanel getProxyHostPanel() {
- proxyHost = new JTextField(10);
-
- JLabel label = new
JLabel(JMeterUtils.getResString("web_server_domain")); // $NON-NLS-1$
- label.setLabelFor(proxyHost);
- label.setFont(FONT_SMALL);
-
- JPanel panel = new JPanel(new BorderLayout(5, 0));
- panel.add(label, BorderLayout.WEST);
- panel.add(proxyHost, BorderLayout.CENTER);
- return panel;
- }
-
- private JPanel getProxyUserPanel() {
- proxyUser = new JTextField(5);
-
- JLabel label = new JLabel(JMeterUtils.getResString("username")); //
$NON-NLS-1$
- label.setLabelFor(proxyUser);
- label.setFont(FONT_SMALL);
-
- JPanel panel = new JPanel(new BorderLayout(5, 0));
- panel.add(label, BorderLayout.WEST);
- panel.add(proxyUser, BorderLayout.CENTER);
- return panel;
- }
-
- private JPanel getProxyPassPanel() {
- proxyPass = new JPasswordField(5);
-
- JLabel label = new JLabel(JMeterUtils.getResString("password")); //
$NON-NLS-1$
- label.setLabelFor(proxyPass);
- label.setFont(FONT_SMALL);
-
- JPanel panel = new JPanel(new BorderLayout(5, 0));
- panel.add(label, BorderLayout.WEST);
- panel.add(proxyPass, BorderLayout.CENTER);
- return panel;
- }
/**
- * This method defines the Panel for the HTTP path, 'Follow Redirects'
- * 'Use KeepAlive', and 'Use multipart for HTTP POST' elements.
+ * This method defines the Panel for:
+ * the HTTP path, Method and Content Encoding
+ * 'Follow Redirects', 'Use KeepAlive', and 'Use multipart for HTTP POST'
elements.
*
* @return JPanel The Panel for the path, 'Follow Redirects' and 'Use
* KeepAlive' elements.
*/
protected Component getPathPanel() {
- path = new JTextField(15);
+ path = new JLabeledTextField(JMeterUtils.getResString("path"), 80);
//$NON-NLS-1$
+ // CONTENT_ENCODING
+ contentEncoding = new
JLabeledTextField(JMeterUtils.getResString("content_encoding"), 7); //
$NON-NLS-1$
- JLabel label = new JLabel(JMeterUtils.getResString("path"));
//$NON-NLS-1$
- label.setLabelFor(path);
+ if (notConfigOnly){
+ method = new JLabeledChoice(JMeterUtils.getResString("method"), //
$NON-NLS-1$
+ HTTPSamplerBase.getValidMethodsAsArray(), true, false);
+ method.addChangeListener(this);
+ }
if (notConfigOnly){
followRedirects = new
JCheckBox(JMeterUtils.getResString("follow_redirects")); // $NON-NLS-1$
@@ -584,10 +393,12 @@ public class UrlConfigGui extends JPanel
}
- JPanel pathPanel = new HorizontalPanel();
- pathPanel.add(label);
+ JPanel pathPanel = new HorizontalPanel();
+ if (notConfigOnly){
+ pathPanel.add(method);
+ }
pathPanel.add(path);
-
+ pathPanel.add(contentEncoding);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(pathPanel);
@@ -606,52 +417,6 @@ public class UrlConfigGui extends JPanel
return panel;
}
- protected JPanel getProtocolAndMethodPanel() {
-
- // Implementation
- if (showImplementation) {
- httpImplementation = new
JLabeledChoice(JMeterUtils.getResString("http_implementation"), // $NON-NLS-1$
- HTTPSamplerFactory.getImplementations());
- httpImplementation.addValue("");
- }
-
- // PROTOCOL
- protocol = new JTextField(4);
- JLabel protocolLabel = new
JLabel(JMeterUtils.getResString("protocol")); // $NON-NLS-1$
- protocolLabel.setLabelFor(protocol);
-
- // CONTENT_ENCODING
- contentEncoding = new JTextField(10);
- JLabel contentEncodingLabel = new
JLabel(JMeterUtils.getResString("content_encoding")); // $NON-NLS-1$
- contentEncodingLabel.setLabelFor(contentEncoding);
-
- if (notConfigOnly){
- method = new JLabeledChoice(JMeterUtils.getResString("method"), //
$NON-NLS-1$
- HTTPSamplerBase.getValidMethodsAsArray(), true, false);
- method.addChangeListener(this);
- }
-
- JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
-
- if (showImplementation) {
- panel.add(httpImplementation);
- }
- panel.add(protocolLabel);
- panel.add(protocol);
- panel.add(Box.createHorizontalStrut(5));
-
- if (notConfigOnly){
- panel.add(method);
- }
- panel.setMinimumSize(panel.getPreferredSize());
- panel.add(Box.createHorizontalStrut(5));
-
- panel.add(contentEncodingLabel);
- panel.add(contentEncoding);
- panel.setMinimumSize(panel.getPreferredSize());
- return panel;
- }
-
protected JTabbedPane getParameterPanel() {
postContentTabbedPane = new ValidationTabbedPane();
argsPanel = new HTTPArgumentsPanel();
Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java?rev=1777041&r1=1777040&r2=1777041&view=diff
==============================================================================
---
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
(original)
+++
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
Mon Jan 2 23:55:21 2017
@@ -20,24 +20,30 @@ package org.apache.jmeter.protocol.http.
import java.awt.BorderLayout;
import java.awt.Dimension;
+import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
+import javax.swing.JLabel;
import javax.swing.JPanel;
+import javax.swing.JPasswordField;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
+import javax.swing.UIManager;
import org.apache.jmeter.gui.util.HorizontalPanel;
import org.apache.jmeter.gui.util.VerticalPanel;
import org.apache.jmeter.protocol.http.config.gui.UrlConfigGui;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
+import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.JLabeledChoice;
import org.apache.jorphan.gui.JLabeledTextField;
//For unit tests, @see TestHttpTestSampleGui
@@ -50,6 +56,10 @@ public class HttpTestSampleGui extends A
private static final long serialVersionUID = 241L;
+ private static final Font FONT_DEFAULT =
UIManager.getDefaults().getFont("TextField.font");
+
+ private static final Font FONT_SMALL = new Font("SansSerif", Font.PLAIN,
(int) Math.round(FONT_DEFAULT.getSize() * 0.8));
+
private UrlConfigGui urlConfigGui;
private JCheckBox retrieveEmbeddedResources;
@@ -68,6 +78,20 @@ public class HttpTestSampleGui extends A
private final boolean isAJP;
+ private JTextField proxyHost;
+
+ private JTextField proxyPort;
+
+ private JTextField proxyUser;
+
+ private JPasswordField proxyPass;
+
+ private JLabeledChoice httpImplementation;
+
+ private JTextField connectTimeOut;
+
+ private JTextField responseTimeOut;
+
public HttpTestSampleGui() {
isAJP = false;
init();
@@ -95,6 +119,13 @@ public class HttpTestSampleGui extends A
if (!isAJP) {
sourceIpAddr.setText(samplerBase.getIpSource());
sourceIpType.setSelectedIndex(samplerBase.getIpSourceType());
+
proxyHost.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.PROXYHOST));
+
proxyPort.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.PROXYPORT));
+
proxyUser.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.PROXYUSER));
+
proxyPass.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.PROXYPASS));
+
httpImplementation.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.IMPLEMENTATION));
+
connectTimeOut.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.CONNECT_TIMEOUT));
+
responseTimeOut.setText(samplerBase.getPropertyAsString(HTTPSamplerBase.RESPONSE_TIMEOUT));
}
}
@@ -127,6 +158,13 @@ public class HttpTestSampleGui extends A
if (!isAJP) {
samplerBase.setIpSource(sourceIpAddr.getText());
samplerBase.setIpSourceType(sourceIpType.getSelectedIndex());
+ samplerBase.setProperty(HTTPSamplerBase.PROXYHOST,
proxyHost.getText(),"");
+ samplerBase.setProperty(HTTPSamplerBase.PROXYPORT,
proxyPort.getText(),"");
+ samplerBase.setProperty(HTTPSamplerBase.PROXYUSER,
proxyUser.getText(),"");
+ samplerBase.setProperty(HTTPSamplerBase.PROXYPASS,
String.valueOf(proxyPass.getPassword()),"");
+ samplerBase.setProperty(HTTPSamplerBase.IMPLEMENTATION,
httpImplementation.getText(),"");
+ samplerBase.setProperty(HTTPSamplerBase.CONNECT_TIMEOUT,
connectTimeOut.getText());
+ samplerBase.setProperty(HTTPSamplerBase.RESPONSE_TIMEOUT,
responseTimeOut.getText());
}
super.configureTestElement(sampler);
}
@@ -144,12 +182,18 @@ public class HttpTestSampleGui extends A
setBorder(makeBorder());
// URL CONFIG
- urlConfigGui = new UrlConfigGui(true, !isAJP, true, true);
+ urlConfigGui = new UrlConfigGui(true, true, true);
// AdvancedPanel (embedded resources, source address and optional
tasks)
JPanel advancedPanel = new VerticalPanel();
advancedPanel.add(createEmbeddedRsrcPanel());
- advancedPanel.add(createSourceAddrPanel());
+ if (!isAJP) {
+ advancedPanel.add(getTimeOutPanel());
+ advancedPanel.add(getImplementationPanel());
+ advancedPanel.add(createSourceAddrPanel());
+ advancedPanel.add(getProxyServerPanel());
+ }
+
advancedPanel.add(createOptionalTasksPanel());
JTabbedPane tabbedPane = new JTabbedPane();
@@ -166,6 +210,43 @@ public class HttpTestSampleGui extends A
add(emptyPanel, BorderLayout.SOUTH);
}
+ private JPanel getTimeOutPanel() {
+ JPanel timeOut = new HorizontalPanel();
+
timeOut.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
+ JMeterUtils.getResString("web_server_timeout_title"))); //
$NON-NLS-1$
+ final JPanel connPanel = getConnectTimeOutPanel();
+ final JPanel reqPanel = getResponseTimeOutPanel();
+ timeOut.add(connPanel);
+ timeOut.add(reqPanel);
+ return timeOut;
+ }
+
+ private JPanel getConnectTimeOutPanel() {
+ connectTimeOut = new JTextField(10);
+
+ JLabel label = new
JLabel(JMeterUtils.getResString("web_server_timeout_connect")); // $NON-NLS-1$
+ label.setLabelFor(connectTimeOut);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(connectTimeOut, BorderLayout.CENTER);
+
+ return panel;
+ }
+
+ private JPanel getResponseTimeOutPanel() {
+ responseTimeOut = new JTextField(10);
+
+ JLabel label = new
JLabel(JMeterUtils.getResString("web_server_timeout_response")); // $NON-NLS-1$
+ label.setLabelFor(responseTimeOut);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(responseTimeOut, BorderLayout.CENTER);
+
+ return panel;
+ }
+
protected JPanel createEmbeddedRsrcPanel() {
// retrieve Embedded resources
retrieveEmbeddedResources = new
JCheckBox(JMeterUtils.getResString("web_testing_retrieve_images")); //
$NON-NLS-1$
@@ -204,6 +285,20 @@ public class HttpTestSampleGui extends A
return embeddedRsrcPanel;
}
+ /**
+ * Create a panel containing the implementation details
+ *
+ * @return the panel
+ */
+ protected final JPanel getImplementationPanel(){
+ JPanel implPanel = new HorizontalPanel();
+ httpImplementation = new
JLabeledChoice(JMeterUtils.getResString("http_implementation"), // $NON-NLS-1$
+ HTTPSamplerFactory.getImplementations());
+ httpImplementation.addValue("");
+ implPanel.add(httpImplementation);
+ return implPanel;
+ }
+
protected JPanel createOptionalTasksPanel() {
// OPTIONAL TASKS
final JPanel checkBoxPanel = new VerticalPanel();
@@ -222,14 +317,12 @@ public class HttpTestSampleGui extends A
sourceAddrPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
JMeterUtils
.getResString("web_testing_source_ip"))); // $NON-NLS-1$
- if (!isAJP) {
- // Add a new field source ip address (for HC implementations only)
-
sourceIpType.setSelectedIndex(HTTPSamplerBase.SourceType.HOSTNAME.ordinal());
//default: IP/Hostname
- sourceAddrPanel.add(sourceIpType);
+ // Add a new field source ip address (for HC implementations only)
+
sourceIpType.setSelectedIndex(HTTPSamplerBase.SourceType.HOSTNAME.ordinal());
//default: IP/Hostname
+ sourceAddrPanel.add(sourceIpType);
- sourceIpAddr = new JTextField();
- sourceAddrPanel.add(sourceIpAddr);
- }
+ sourceIpAddr = new JTextField();
+ sourceAddrPanel.add(sourceIpAddr);
return sourceAddrPanel;
}
@@ -257,6 +350,13 @@ public class HttpTestSampleGui extends A
if (!isAJP) {
sourceIpAddr.setText(""); // $NON-NLS-1$
sourceIpType.setSelectedIndex(HTTPSamplerBase.SourceType.HOSTNAME.ordinal());
//default: IP/Hostname
+ proxyHost.setText(""); // $NON-NLS-1$
+ proxyPort.setText(""); // $NON-NLS-1$
+ proxyUser.setText(""); // $NON-NLS-1$
+ proxyPass.setText(""); // $NON-NLS-1$
+ httpImplementation.setText(""); // $NON-NLS-1$
+ connectTimeOut.setText(""); // $NON-NLS-1$
+ responseTimeOut.setText(""); // $NON-NLS-1$
}
}
@@ -273,4 +373,81 @@ public class HttpTestSampleGui extends A
embeddedRE.setEnabled(false);
}
}
+
+
+ /**
+ * Create a panel containing the proxy server details
+ *
+ * @return the panel
+ */
+ protected final JPanel getProxyServerPanel(){
+ JPanel proxyServer = new HorizontalPanel();
+ proxyServer.add(getProxyHostPanel(), BorderLayout.CENTER);
+ proxyServer.add(getProxyPortPanel(), BorderLayout.EAST);
+
+ JPanel proxyLogin = new HorizontalPanel();
+ proxyLogin.add(getProxyUserPanel());
+ proxyLogin.add(getProxyPassPanel());
+
+ JPanel proxyServerPanel = new HorizontalPanel();
+
proxyServerPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
+ JMeterUtils.getResString("web_proxy_server_title"))); //
$NON-NLS-1$
+ proxyServerPanel.add(proxyServer);
+ proxyServerPanel.add(proxyLogin);
+
+ return proxyServerPanel;
+ }
+
+ private JPanel getProxyHostPanel() {
+ proxyHost = new JTextField(10);
+
+ JLabel label = new
JLabel(JMeterUtils.getResString("web_server_domain")); // $NON-NLS-1$
+ label.setLabelFor(proxyHost);
+ label.setFont(FONT_SMALL);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(proxyHost, BorderLayout.CENTER);
+ return panel;
+ }
+
+ private JPanel getProxyPortPanel() {
+ proxyPort = new JTextField(10);
+
+ JLabel label = new
JLabel(JMeterUtils.getResString("web_server_port")); // $NON-NLS-1$
+ label.setLabelFor(proxyPort);
+ label.setFont(FONT_SMALL);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(proxyPort, BorderLayout.CENTER);
+
+ return panel;
+ }
+
+ private JPanel getProxyUserPanel() {
+ proxyUser = new JTextField(5);
+
+ JLabel label = new JLabel(JMeterUtils.getResString("username")); //
$NON-NLS-1$
+ label.setLabelFor(proxyUser);
+ label.setFont(FONT_SMALL);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(proxyUser, BorderLayout.CENTER);
+ return panel;
+ }
+
+ private JPanel getProxyPassPanel() {
+ proxyPass = new JPasswordField(5);
+
+ JLabel label = new JLabel(JMeterUtils.getResString("password")); //
$NON-NLS-1$
+ label.setLabelFor(proxyPass);
+ label.setFont(FONT_SMALL);
+
+ JPanel panel = new JPanel(new BorderLayout(5, 0));
+ panel.add(label, BorderLayout.WEST);
+ panel.add(proxyPass, BorderLayout.CENTER);
+ return panel;
+ }
}
Modified: jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1777041&r1=1777040&r2=1777041&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Mon Jan 2 23:55:21 2017
@@ -108,6 +108,7 @@ Fill in some detail.
<h3>HTTP Samplers and Test Script Recorder</h3>
<ul>
<li><bug>59934</bug>Fix race-conditions in CssParser. Based on a patch by
Jerome Loisel (loisel.jerome at gmail.com)</li>
+ <li><bug>60543</bug>HTTP Request / Http Request Defaults UX: Move to
advanced panel Timeouts, Implementation, Proxy</li>
</ul>
<h3>Other samplers</h3>