khammond 01/10/07 08:37:06
Modified: src/org/apache/jmeter/protocol/http/control
HttpTestSample.java
Log:
Added logic. Now supports retrieval of images for multipart form requests.
Revision Changes Path
1.26 +277 -286
jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/HttpTestSample.java
Index: HttpTestSample.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/control/HttpTestSample.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- HttpTestSample.java 2001/08/31 00:46:44 1.25
+++ HttpTestSample.java 2001/10/07 15:37:06 1.26
@@ -1,286 +1,277 @@
-/*
- * ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache JMeter" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact [EMAIL PROTECTED]
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache JMeter", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-package org.apache.jmeter.protocol.http.control;
-
-import java.util.*;
-import java.io.*;
-
-import org.apache.jmeter.config.ConfigElement;
-import org.apache.jmeter.protocol.http.config.*;
-import org.apache.jmeter.protocol.http.config.MultipartUrlConfig;
-import org.apache.jmeter.control.GenericController;
-import org.apache.jmeter.control.NoEntryException;
-import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.protocol.http.sampler.*;
-import org.apache.jmeter.control.SamplerController;
-import org.apache.jmeter.samplers.*;
-import org.apache.jmeter.gui.JMeterComponentModel;
-import org.apache.jmeter.gui.MenuFactory;
-
-import org.apache.log4j.*;
-import org.apache.jmeter.control.AbstractGenerativeController;
-
-/************************************************************
- * Title: Apache JMeter Description: Copyright: Copyright (c) 2000 Company:
- * Apache Foundation
- *
- *@author Michael Stover
- *@created $Date: 2001/08/31 00:46:44 $
- *@version 1.0
- ***********************************************************/
-
-public class HttpTestSample extends AbstractGenerativeController implements
JMeterComponentModel,
- Serializable
-{
- private UrlConfig defaultUrl;
- private boolean getImages = false;
- private static List addableList = null;
-
- private static Category catClass =
- Category.getInstance(HttpTestSample.class);
-
- /************************************************************
- * Constructor for the HttpTestSample object
- ***********************************************************/
-
- public HttpTestSample()
- {
- super();
- catClass.debug("Start : HttpTestSample1");
- defaultUrl = new UrlConfig();
- catClass.debug("End : HttpTestSample1");
- }
-
- /************************************************************
- * !ToDo (Method description)
- *
- *@param getImages !ToDo (Parameter description)
- ***********************************************************/
- public void setGetImages(boolean getImages)
- {
- this.getImages = getImages;
- }
-
- /************************************************************
- * Set the default url and parameters to be displayed when this controller is
- * added to a ThreadGroup etc.
- *
- *@param config the default url
- ***********************************************************/
- public void setDefaultUrl(UrlConfig config)
- {
- defaultUrl = config;
- if (catClass.isDebugEnabled())
- {
- catClass.debug("Setting defaultUrl - " + config.toString());
- }
- }
-
- /************************************************************
- * !ToDoo (Method description)
- *
- *@return !ToDo (Return description)
- ***********************************************************/
- public boolean isGetImages()
- {
- return getImages;
- }
-
- /************************************************************
- * Gets the DefaultUrl attribute of the HttpTestSample object
- *
- *@return The DefaultUrl value
- ***********************************************************/
-
- public UrlConfig getDefaultUrl()
- {
-
- if (catClass.isDebugEnabled())
- {
- catClass.debug("Returning defaultUrl - " +
- defaultUrl.toString());
- }
- return defaultUrl;
- }
-
-
- /************************************************************
- * Gets the ClassLabel attribute of the HttpTestSample object
- *
- *@return The ClassLabel value
- ***********************************************************/
-
- public String getClassLabel()
- {
-
- return "Web Testing";
- }
-
-
- /************************************************************
- * Gets the GuiClass attribute of the HttpTestSample object
- *
- *@return The GuiClass value
- ***********************************************************/
-
- public Class getGuiClass()
- {
-
- return
org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui.class;
- }
-
-
- /************************************************************
- * Gets the AddList attribute of the HttpTestSample object
- *
- *@return The AddList value
- ***********************************************************/
-
- public Collection getAddList()
- {
- if(addableList == null)
- {
- addableList = new LinkedList();
- addableList.add(new CookieManager().getClassLabel());
- addableList.add(new HeaderManager().getClassLabel());
- addableList.add(new AuthManager().getClassLabel());
- addableList.add(MenuFactory.getAssertionMenu());
- }
- return addableList;
- }
-
-
- /************************************************************
- * Gets the TagHandlerClass attribute of the HttpTestSample object
- *
- *@return The TagHandlerClass value
- ***********************************************************/
- public Class getTagHandlerClass()
- {
-
- return org.apache.jmeter.save.handlers.HttpTestSampleHandler.class;
- }
-
- /************************************************************
- * !ToDo (Method description)
- ***********************************************************/
- public void convertUrlToMultipart()
- {
- MultipartUrlConfig newConfig = new MultipartUrlConfig();
- newConfig.addConfigElement(defaultUrl);
- defaultUrl = newConfig;
- }
-
- /************************************************************
- * !ToDo (Method description)
- ***********************************************************/
- public void convertUrlToDefault()
- {
- UrlConfig newConfig = new UrlConfig();
- newConfig.addConfigElement(defaultUrl);
- defaultUrl = newConfig;
- }
-
- /************************************************************
- * Clones this object
- *
- *@return the cloned instance
- ***********************************************************/
-
- public Object clone()
- {
- catClass.debug("Start : clone1");
- HttpTestSample control = new HttpTestSample();
- control.setDefaultUrl(defaultUrl);
- control.setGetImages(getImages);
- this.standardCloneProc(control);
-
- catClass.debug("End : clone1");
- return control;
- }
-
- /************************************************************
- * Description of the Method
- *
- *@return Description of the Returned Value
- ***********************************************************/
-
- protected Entry createEntry()
- {
- Entry entry = new Entry();
- entry.addConfigElement(defaultUrl, UrlConfig.class);
- // IMPORTANT : when addind new types of instance of
- // ensure that you add those more specific classes first
- // e.g. UrlConfigFull extends UrlConfig so the test for
- // instance of UrlConfigFull should come before the test for
- // UrlConfig
- if (defaultUrl instanceof MultipartUrlConfig)
- {
- entry.setSamplerClass(MultipartFormSampler.class);
- }
- else if (defaultUrl instanceof UrlConfig)
- {
- if (getImages)
- {
- entry.setSamplerClass(HTTPSamplerFull.class);
- }
- else
- {
- entry.setSamplerClass(HTTPSampler.class);
- }
- }
- return entry;
- }
-}
\ No newline at end of file
+/*
+ * ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache JMeter" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact [EMAIL PROTECTED]
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * "Apache JMeter", nor may "Apache" appear in their name, without
+ * prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+package org.apache.jmeter.protocol.http.control;
+
+import java.util.*;
+import java.io.*;
+
+import org.apache.jmeter.config.ConfigElement;
+import org.apache.jmeter.protocol.http.config.*;
+import org.apache.jmeter.protocol.http.config.MultipartUrlConfig;
+import org.apache.jmeter.control.GenericController;
+import org.apache.jmeter.control.NoEntryException;
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.protocol.http.sampler.*;
+import org.apache.jmeter.control.SamplerController;
+import org.apache.jmeter.samplers.*;
+import org.apache.jmeter.gui.JMeterComponentModel;
+import org.apache.jmeter.gui.MenuFactory;
+import org.apache.jmeter.control.AbstractGenerativeController;
+
+import org.apache.log4j.*;
+
+/************************************************************
+ * Title: Apache JMeter Description: Copyright: Copyright (c) 2000 Company:
+ * Apache Foundation
+ *
+ *@author Michael Stover
+ *@created $Date: 2001/10/07 15:37:06 $
+ *@version 1.0
+ ***********************************************************/
+public class HttpTestSample extends AbstractGenerativeController implements
JMeterComponentModel,
+ Serializable
+{
+ private UrlConfig defaultUrl;
+ private boolean getImages = false;
+ private static List addableList = null;
+ private static Category catClass =
+ Category.getInstance(HttpTestSample.class);
+
+ /************************************************************
+ * Constructor for the HttpTestSample object
+ ***********************************************************/
+ public HttpTestSample()
+ {
+ super();
+ catClass.debug("Start : HttpTestSample1");
+ defaultUrl = new UrlConfig();
+ catClass.debug("End : HttpTestSample1");
+ }
+
+ /************************************************************
+ * !ToDo (Method description)
+ *
+ *@param getImages !ToDo (Parameter description)
+ ***********************************************************/
+ public void setGetImages(boolean getImages)
+ {
+ this.getImages = getImages;
+ }
+
+ /************************************************************
+ * Set the default url and parameters to be displayed when this controller is
+ * added to a ThreadGroup etc.
+ *
+ *@param config the default url
+ ***********************************************************/
+ public void setDefaultUrl(UrlConfig config)
+ {
+ defaultUrl = config;
+ if (catClass.isDebugEnabled())
+ {
+ catClass.debug("Setting defaultUrl - " + config.toString());
+ }
+ }
+
+ /************************************************************
+ * !ToDoo (Method description)
+ *
+ *@return !ToDo (Return description)
+ ***********************************************************/
+ public boolean isGetImages()
+ {
+ return getImages;
+ }
+
+ /************************************************************
+ * Gets the DefaultUrl attribute of the HttpTestSample object
+ *
+ *@return The DefaultUrl value
+ ***********************************************************/
+ public UrlConfig getDefaultUrl()
+ {
+ if (catClass.isDebugEnabled())
+ {
+ catClass.debug("Returning defaultUrl - " +
+ defaultUrl.toString());
+ }
+ return defaultUrl;
+ }
+
+ /************************************************************
+ * Gets the ClassLabel attribute of the HttpTestSample object
+ *
+ *@return The ClassLabel value
+ ***********************************************************/
+ public String getClassLabel()
+ {
+ return "Web Testing";
+ }
+
+ /************************************************************
+ * Gets the GuiClass attribute of the HttpTestSample object
+ *
+ *@return The GuiClass value
+ ***********************************************************/
+ public Class getGuiClass()
+ {
+ return
org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui.class;
+ }
+
+ /************************************************************
+ * Gets the AddList attribute of the HttpTestSample object
+ *
+ *@return The AddList value
+ ***********************************************************/
+ public Collection getAddList()
+ {
+ if(addableList == null)
+ {
+ addableList = new LinkedList();
+ addableList.add(new CookieManager().getClassLabel());
+ addableList.add(new HeaderManager().getClassLabel());
+ addableList.add(new AuthManager().getClassLabel());
+ addableList.add(MenuFactory.getAssertionMenu());
+ }
+ return addableList;
+ }
+
+ /************************************************************
+ * Gets the TagHandlerClass attribute of the HttpTestSample object
+ *
+ *@return The TagHandlerClass value
+ ***********************************************************/
+ public Class getTagHandlerClass()
+ {
+ return org.apache.jmeter.save.handlers.HttpTestSampleHandler.class;
+ }
+
+ /************************************************************
+ * !ToDo (Method description)
+ ***********************************************************/
+ public void convertUrlToMultipart()
+ {
+ MultipartUrlConfig newConfig = new MultipartUrlConfig();
+ newConfig.addConfigElement(defaultUrl);
+ defaultUrl = newConfig;
+ }
+
+ /************************************************************
+ * !ToDo (Method description)
+ ***********************************************************/
+ public void convertUrlToDefault()
+ {
+ UrlConfig newConfig = new UrlConfig();
+ newConfig.addConfigElement(defaultUrl);
+ defaultUrl = newConfig;
+ }
+
+ /************************************************************
+ * Clones this object
+ *
+ *@return the cloned instance
+ ***********************************************************/
+ public Object clone()
+ {
+ catClass.debug("Start : clone1");
+ HttpTestSample control = new HttpTestSample();
+ control.setDefaultUrl(defaultUrl);
+ control.setGetImages(getImages);
+ this.standardCloneProc(control);
+ catClass.debug("End : clone1");
+ return control;
+ }
+
+ /************************************************************
+ * Description of the Method
+ *
+ *@return Description of the Returned Value
+ ***********************************************************/
+ protected Entry createEntry()
+ {
+ Entry entry = new Entry();
+ entry.addConfigElement(defaultUrl, UrlConfig.class);
+ // IMPORTANT : when addind new types of instance of
+ // ensure that you add those more specific classes first
+ // e.g. UrlConfigFull extends UrlConfig so the test for
+ // instance of UrlConfigFull should come before the test for
+ // UrlConfig
+ if (defaultUrl instanceof MultipartUrlConfig)
+ {
+ if (getImages)
+ {
+ entry.setSamplerClass(MultipartFormSamplerFull.class);
+ }
+ else
+ {
+ entry.setSamplerClass(MultipartFormSampler.class);
+ }
+ }
+
+ else if (defaultUrl instanceof UrlConfig)
+ {
+ if (getImages)
+ {
+ entry.setSamplerClass(HTTPSamplerFull.class);
+ }
+ else
+ {
+ entry.setSamplerClass(HTTPSampler.class);
+ }
+ }
+ return entry;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]