From feb4819a54fb4803badc80c8df955fa4dfb8a6d8 Mon Sep 17 00:00:00 2001 From: Sebastian Bazley Date: Thu, 23 Oct 2008 01:33:30 +0000 Subject: [PATCH] Add classname field to TCP Sampler GUIs git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/trunk@707243 13f79535-47bb-0310-9956-ffa450edef68 --- docs/images/screenshots/tcpsampler.png | Bin 4350 -> 4407 bytes docs/images/screenshots/tcpsamplerconfig.png | Bin 3054 -> 3701 bytes .../jmeter/resources/messages.properties | 1 + .../protocol/tcp/config/gui/TCPConfigGui.java | 32 +++--- .../protocol/tcp/sampler/TCPSampler.java | 92 ++++++++++-------- xdocs/changes.xml | 1 + xdocs/images/screenshots/tcpsampler.png | Bin 4350 -> 4407 bytes xdocs/images/screenshots/tcpsamplerconfig.png | Bin 3054 -> 3701 bytes xdocs/usermanual/component_reference.xml | 11 ++- 9 files changed, 73 insertions(+), 64 deletions(-) diff --git a/docs/images/screenshots/tcpsampler.png b/docs/images/screenshots/tcpsampler.png index b3452d624f993ca61f569a4951aa1e5c05c99dc2..8dbdcc37c21f73ce89ae4f182c8c9da62b122384 100644 GIT binary patch literal 4407 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 J@;R@&{{*o_)gJ%= literal 4350 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 P4PbH3*0k&l{LbG1IX_hs diff --git a/docs/images/screenshots/tcpsamplerconfig.png b/docs/images/screenshots/tcpsamplerconfig.png index d8304708c62317359dcdda9cb2b9bf4e8378724d..1a2d42eef0864e823d42f9e6fc7a906eb2d01b27 100644 GIT binary patch literal 3701 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 diff --git a/src/core/org/apache/jmeter/resources/messages.properties b/src/core/org/apache/jmeter/resources/messages.properties index dbab111164..f61beb26f8 100644 --- a/src/core/org/apache/jmeter/resources/messages.properties +++ b/src/core/org/apache/jmeter/resources/messages.properties @@ -778,6 +778,7 @@ table_visualizer_status=Status table_visualizer_success=Success table_visualizer_thread_name=Thread Name table_visualizer_warning=Warning +tcp_classname=TCPClient classname\: tcp_config_title=TCP Sampler Config tcp_nodelay=Set NoDelay tcp_port=Port Number\: diff --git a/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java b/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java index 66355bf317..074559e48b 100644 --- a/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java +++ b/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java @@ -32,21 +32,11 @@ import org.apache.jmeter.gui.util.VerticalPanel; import org.apache.jmeter.protocol.tcp.sampler.TCPSampler; import org.apache.jmeter.testelement.TestElement; import org.apache.jmeter.util.JMeterUtils; +import org.apache.jorphan.gui.JLabeledTextField; public class TCPConfigGui extends AbstractConfigGui { - private final static String SERVER = "server"; //$NON-NLS-1$ - private final static String RE_USE_CONNECTION = "reUseConnection"; //$NON-NLS-1$ - - private final static String PORT = "port"; //$NON-NLS-1$ - - // NOTUSED yet private final static String FILENAME = "filename"; - // //$NON-NLS-1$ - private final static String TIMEOUT = "timeout"; //$NON-NLS-1$ - - private final static String NODELAY = "nodelay"; //$NON-NLS-1$ - - private final static String REQUEST = "request"; //$NON-NLS-1$ + private JLabeledTextField classname; private JTextField server; @@ -78,6 +68,8 @@ public class TCPConfigGui extends AbstractConfigGui { public void configure(TestElement element) { super.configure(element); + // N.B. this will be a config element, so we cannot use the getXXX() methods + classname.setText(element.getPropertyAsString(TCPSampler.CLASSNAME)); server.setText(element.getPropertyAsString(TCPSampler.SERVER)); // Default to original behaviour, i.e. re-use connection reUseConnection.setSelected(element.getPropertyAsBoolean(TCPSampler.RE_USE_CONNECTION,true)); @@ -101,6 +93,8 @@ public class TCPConfigGui extends AbstractConfigGui { */ public void modifyTestElement(TestElement element) { configureTestElement(element); + // N.B. this will be a config element, so we cannot use the setXXX() methods + element.setProperty(TCPSampler.CLASSNAME, classname.getText(), ""); element.setProperty(TCPSampler.SERVER, server.getText()); element.setProperty(TCPSampler.RE_USE_CONNECTION, reUseConnection.isSelected()); element.setProperty(TCPSampler.PORT, port.getText()); @@ -116,6 +110,7 @@ public class TCPConfigGui extends AbstractConfigGui { public void clearGui() { super.clearGui(); + classname.setText(""); //$NON-NLS-1$ server.setText(""); //$NON-NLS-1$ port.setText(""); //$NON-NLS-1$ timeout.setText(""); //$NON-NLS-1$ @@ -128,7 +123,6 @@ public class TCPConfigGui extends AbstractConfigGui { JLabel label = new JLabel(JMeterUtils.getResString("tcp_timeout")); // $NON-NLS-1$ timeout = new JTextField(10); - timeout.setName(TIMEOUT); label.setLabelFor(timeout); JPanel timeoutPanel = new JPanel(new BorderLayout(5, 0)); @@ -141,7 +135,6 @@ public class TCPConfigGui extends AbstractConfigGui { JLabel label = new JLabel(JMeterUtils.getResString("tcp_nodelay")); // $NON-NLS-1$ setNoDelay = new JCheckBox(); - setNoDelay.setName(NODELAY); label.setLabelFor(setNoDelay); JPanel nodelayPanel = new JPanel(new BorderLayout(5, 0)); @@ -154,7 +147,6 @@ public class TCPConfigGui extends AbstractConfigGui { JLabel label = new JLabel(JMeterUtils.getResString("server")); // $NON-NLS-1$ server = new JTextField(10); - server.setName(SERVER); label.setLabelFor(server); JPanel serverPanel = new JPanel(new BorderLayout(5, 0)); @@ -167,7 +159,6 @@ public class TCPConfigGui extends AbstractConfigGui { JLabel label = new JLabel(JMeterUtils.getResString("reuseconnection")); //$NON-NLS-1$ reUseConnection = new JCheckBox("", true); - reUseConnection.setName(RE_USE_CONNECTION); label.setLabelFor(reUseConnection); JPanel closePortPanel = new JPanel(new BorderLayout(5, 0)); @@ -180,7 +171,6 @@ public class TCPConfigGui extends AbstractConfigGui { JLabel label = new JLabel(JMeterUtils.getResString("tcp_port")); //$NON-NLS-1$ port = new JTextField(10); - port.setName(PORT); label.setLabelFor(port); JPanel PortPanel = new JPanel(new BorderLayout(5, 0)); @@ -193,7 +183,6 @@ public class TCPConfigGui extends AbstractConfigGui { JLabel reqLabel = new JLabel(JMeterUtils.getResString("tcp_request_data")); // $NON-NLS-1$ requestData = new JTextArea(3, 0); requestData.setLineWrap(true); - requestData.setName(REQUEST); reqLabel.setLabelFor(requestData); JPanel reqDataPanel = new JPanel(new BorderLayout(5, 0)); @@ -227,9 +216,12 @@ public class TCPConfigGui extends AbstractConfigGui { } VerticalPanel mainPanel = new VerticalPanel(); - mainPanel.add(createServerPanel()); + classname = new JLabeledTextField(JMeterUtils.getResString("tcp_classname")); + mainPanel.add(classname); + final JPanel serverPanel = createServerPanel(); + serverPanel.add(createPortPanel(), BorderLayout.EAST); + mainPanel.add(serverPanel); mainPanel.add(createClosePortPanel()); - mainPanel.add(createPortPanel()); mainPanel.add(createTimeoutPanel()); mainPanel.add(createNoDelayPanel()); mainPanel.add(createRequestPanel()); diff --git a/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java b/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java index c04b62c7a8..0460ec0489 100644 --- a/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java +++ b/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java @@ -49,6 +49,7 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { private static final Logger log = LoggingManager.getLoggerForClass(); + //++ JMX file constants - do not change public static final String SERVER = "TCPSampler.server"; //$NON-NLS-1$ public static final String PORT = "TCPSampler.port"; //$NON-NLS-1$ @@ -64,6 +65,7 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { public static final String REQUEST = "TCPSampler.request"; //$NON-NLS-1$ public static final String RE_USE_CONNECTION = "TCPSampler.reUseConnection"; //$NON-NLS-1$ + //-- JMX file constants - do not change private static final String TCPKEY = "TCP"; //$NON-NLS-1$ key for HashMap @@ -75,11 +77,11 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { // JMeterUtils.getPropDefault("tcp.status.regex",""); // Otherwise, the response is scanned for these strings - private static final String STATUS_PREFIX = JMeterUtils.getPropDefault("tcp.status.prefix", ""); + private static final String STATUS_PREFIX = JMeterUtils.getPropDefault("tcp.status.prefix", ""); //$NON-NLS-1$ - private static final String STATUS_SUFFIX = JMeterUtils.getPropDefault("tcp.status.suffix", ""); + private static final String STATUS_SUFFIX = JMeterUtils.getPropDefault("tcp.status.suffix", ""); //$NON-NLS-1$ - private static final String STATUS_PROPERTIES = JMeterUtils.getPropDefault("tcp.status.properties", ""); + private static final String STATUS_PROPERTIES = JMeterUtils.getPropDefault("tcp.status.properties", ""); //$NON-NLS-1$ private static final Properties statusProps = new Properties(); @@ -87,22 +89,21 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { static { boolean hsp = false; - log.debug("Protocol Handler name=" + getClassname()); - log.debug("Status prefix=" + STATUS_PREFIX); - log.debug("Status suffix=" + STATUS_SUFFIX); - log.debug("Status properties=" + STATUS_PROPERTIES); + log.debug("Status prefix=" + STATUS_PREFIX); //$NON-NLS-1$ + log.debug("Status suffix=" + STATUS_SUFFIX); //$NON-NLS-1$ + log.debug("Status properties=" + STATUS_PROPERTIES); //$NON-NLS-1$ if (STATUS_PROPERTIES.length() > 0) { File f = new File(STATUS_PROPERTIES); FileInputStream fis = null; try { fis = new FileInputStream(f); statusProps.load(fis); - log.debug("Successfully loaded properties"); + log.debug("Successfully loaded properties"); //$NON-NLS-1$ hsp = true; } catch (FileNotFoundException e) { - log.debug("Property file not found"); + log.debug("Property file not found"); //$NON-NLS-1$ } catch (IOException e) { - log.debug("Property file error " + e.toString()); + log.debug("Property file error " + e.toString()); //$NON-NLS-1$ } finally { JOrphanUtils.closeQuietly(fis); } @@ -120,9 +121,7 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { private transient TCPClient protocolHandler; public TCPSampler() { - log.debug("Created " + this); - protocolHandler = getProtocol(); - log.debug("Using Protocol Handler: " + protocolHandler.getClass().getName()); + log.debug("Created " + this); //$NON-NLS-1$ } private String getError() { @@ -177,8 +176,8 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { return getPropertyAsString(SERVER); } - public void setReUseConnection(String newServer) { - this.setProperty(RE_USE_CONNECTION, newServer); + public void setReUseConnection(String reuse) { + this.setProperty(RE_USE_CONNECTION, reuse); } public boolean isReUseConnection() { @@ -225,6 +224,18 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { return getPropertyAsBoolean(NODELAY); } + public void setClassname(String classname) { + this.setProperty(CLASSNAME, classname, ""); //$NON-NLS-1$ + } + + public String getClassname() { + String clazz = getPropertyAsString(CLASSNAME,""); + if (clazz==null || clazz.length()==0){ + clazz = JMeterUtils.getPropDefault("tcp.handler", "TCPClientImpl"); //$NON-NLS-1$ $NON-NLS-2$ + } + return clazz; + } + /** * Returns a formatted string label describing this sampler Example output: * Tcp://Tcp.nowhere.com/pub/README.txt @@ -232,15 +243,10 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { * @return a formatted string label describing this sampler */ public String getLabel() { - return ("tcp://" + this.getServer() + ":" + this.getPort());//$NON-NLS-1$ + return ("tcp://" + this.getServer() + ":" + this.getPort());//$NON-NLS-1$ $NON-NLS-2$ } - private static String getClassname() { - String className = JMeterUtils.getPropDefault("tcp.handler", "TCPClientImpl"); - return className; - } - - private static final String protoPrefix = "org.apache.jmeter.protocol.tcp.sampler."; + private static final String protoPrefix = "org.apache.jmeter.protocol.tcp.sampler."; //$NON-NLS-1$ private Class getClass(String className) { Class c = null; @@ -250,7 +256,7 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { try { c = Class.forName(protoPrefix + className, false, Thread.currentThread().getContextClassLoader()); } catch (ClassNotFoundException e1) { - log.error("Could not find protocol class " + className); + log.error("Could not find protocol class '" + className+"'"); //$NON-NLS-1$ } } return c; @@ -260,13 +266,16 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { private TCPClient getProtocol() { TCPClient TCPClient = null; Class javaClass = getClass(getClassname()); + if (javaClass == null){ + return null; + } try { TCPClient = (TCPClient) javaClass.newInstance(); if (log.isDebugEnabled()) { - log.debug(this + "Created: " + getClassname() + "@" + Integer.toHexString(TCPClient.hashCode())); + log.debug(this + "Created: " + getClassname() + "@" + Integer.toHexString(TCPClient.hashCode())); //$NON-NLS-1$ } } catch (Exception e) { - log.error(this + " Exception creating: " + getClassname(), e); + log.error(this + " Exception creating: " + getClassname(), e); //$NON-NLS-1$ } return TCPClient; } @@ -276,15 +285,17 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { log.debug(getLabel() + " " + getFilename() + " " + getUsername() + " " + getPassword()); SampleResult res = new SampleResult(); boolean isSuccessful = false; - res.setSampleLabel(getName());// Use the test element name for the - // label - res.setSamplerData("Host: " + getServer() + " Port: " + getPort()); + res.setSampleLabel(getName());// Use the test element name for the label + res.setSamplerData("Host: " + getServer() + " Port: " + getPort()); //$NON-NLS-1$ $NON-NLS-2$ res.sampleStart(); try { Socket sock = getSocket(); if (sock == null) { - res.setResponseCode("500"); + res.setResponseCode("500"); //$NON-NLS-1$ res.setResponseMessage(getError()); + } else if (protocolHandler == null){ + res.setResponseCode("500"); //$NON-NLS-1$ + res.setResponseMessage("Protocol handler not found"); } else { InputStream is = sock.getInputStream(); OutputStream os = sock.getOutputStream(); @@ -296,7 +307,7 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { res.setResponseData(in.getBytes()); res.setDataType(SampleResult.TEXT); res.setResponseCodeOK(); - res.setResponseMessage("OK"); + res.setResponseMessage("OK"); //$NON-NLS-1$ isSuccessful = true; // Reset the status code if the message contains one if (STATUS_PREFIX.length() > 0) { @@ -307,12 +318,12 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { res.setResponseCode(rc); isSuccessful = checkResponseCode(rc); if (haveStatusProps) { - res.setResponseMessage(statusProps.getProperty(rc, "Status code not found in properties")); + res.setResponseMessage(statusProps.getProperty(rc, "Status code not found in properties")); //$NON-NLS-1$ } else { res.setResponseMessage("No status property file"); } } else { - res.setResponseCode("999"); + res.setResponseCode("999"); //$NON-NLS-1$ res.setResponseMessage("Status value not found"); isSuccessful = false; } @@ -320,7 +331,7 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { } } catch (IOException ex) { log.debug("", ex); - res.setResponseCode("500"); + res.setResponseCode("500"); //$NON-NLS-1$ res.setResponseMessage(ex.toString()); closeSocket(); } finally { @@ -343,18 +354,21 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { * @return whether this represents success or not */ private boolean checkResponseCode(String rc) { - if (rc.compareTo("400") >= 0 && rc.compareTo("499") <= 0) { + if (rc.compareTo("400") >= 0 && rc.compareTo("499") <= 0) { //$NON-NLS-1$ $NON-NLS-2$ return false; } - if (rc.compareTo("500") >= 0 && rc.compareTo("599") <= 0) { + if (rc.compareTo("500") >= 0 && rc.compareTo("599") <= 0) { //$NON-NLS-1$ $NON-NLS-2$ return false; } return true; } public void threadStarted() { - log.debug("Thread Started"); - } + log.debug("Thread Started"); //$NON-NLS-1$ + protocolHandler = getProtocol(); + log.debug("Using Protocol Handler: " + //$NON-NLS-1$ + (protocolHandler == null ? "NONE" : protocolHandler.getClass().getName())); //$NON-NLS-1$ +} private void closeSocket() { Map cp = (Map) tp.get(); @@ -364,13 +378,13 @@ public class TCPSampler extends AbstractSampler implements ThreadListener { try { con.close(); } catch (IOException e) { - log.warn("Error closing socket "+e); + log.warn("Error closing socket "+e); //$NON-NLS-1$ } } } public void threadFinished() { - log.debug("Thread Finished"); + log.debug("Thread Finished"); //$NON-NLS-1$ closeSocket(); } } diff --git a/xdocs/changes.xml b/xdocs/changes.xml index 27fdd86aa1..e7b349038d 100644 --- a/xdocs/changes.xml +++ b/xdocs/changes.xml @@ -153,6 +153,7 @@ These are implemented in the AbstractTestElement class which all elements should
  • Allow If Controller to use variable expressions (not just Javascript)
  • Bug 45903 - allow Assertions to apply to sub-samples
  • Trim spaces from While Controller condition before comparing against LAST, blank or false
  • +
  • Add classname field to TCP Sampler GUIs
  • Non-functional changes

    diff --git a/xdocs/images/screenshots/tcpsampler.png b/xdocs/images/screenshots/tcpsampler.png index b3452d624f993ca61f569a4951aa1e5c05c99dc2..8dbdcc37c21f73ce89ae4f182c8c9da62b122384 100644 GIT binary patch literal 4407 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 J@;R@&{{*o_)gJ%= literal 4350 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 P4PbH3*0k&l{LbG1IX_hs diff --git a/xdocs/images/screenshots/tcpsamplerconfig.png b/xdocs/images/screenshots/tcpsamplerconfig.png index d8304708c62317359dcdda9cb2b9bf4e8378724d..1a2d42eef0864e823d42f9e6fc7a906eb2d01b27 100644 GIT binary patch literal 3701 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 diff --git a/xdocs/usermanual/component_reference.xml b/xdocs/usermanual/component_reference.xml index d042658bf7..40f4e162dd 100644 --- a/xdocs/usermanual/component_reference.xml +++ b/xdocs/usermanual/component_reference.xml @@ -965,8 +965,7 @@ Currently the only way to changes these is via the SampleResult methods:

    - -ALPHA CODE +

    The TCP Sampler opens a TCP/IP connection to the specified server. @@ -1018,9 +1017,10 @@ Currently the only way to changes these is via the SampleResult methods: Descriptive name for this element that is shown in the tree. + Name of the TCPClient class. Defaults to the property tcp.handler, failing that TCPClientImpl. Name or IP of TCP server - If selected, the connection is kept open. Otherwise it is closed when the data has been read. Port to be used + If selected, the connection is kept open. Otherwise it is closed when the data has been read. Timeout for replies Should the nodelay property be set? Text to be sent @@ -2714,8 +2714,7 @@ The Database URL and JDBC Driver class are defined by the provider of the JDBC i - - ALPHA CODE +

    The TCP Sampler Config provides default data for the TCP Sampler @@ -2723,8 +2722,10 @@ The Database URL and JDBC Driver class are defined by the provider of the JDBC i Descriptive name for this element that is shown in the tree. + Name of the TCPClient class. Defaults to the property tcp.handler, failing that TCPClientImpl. Name or IP of TCP server Port to be used + If selected, the connection is kept open. Otherwise it is closed when the data has been read. Timeout for replies Should the nodelay property be set? Text to be sent