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 2006/04/05 03:20:53 UTC
svn commit: r391464 - in /jakarta/jmeter/branches/rel-2-1/src:
core/org/apache/jmeter/JMeter.java
protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
Author: sebb
Date: Tue Apr 4 18:20:50 2006
New Revision: 391464
URL: http://svn.apache.org/viewcvs?rev=391464&view=rev
Log:
Save proxy user and password for HttpClient Sampler
Modified:
jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/JMeter.java
jakarta/jmeter/branches/rel-2-1/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
Modified: jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/JMeter.java
URL: http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/JMeter.java?rev=391464&r1=391463&r2=391464&view=diff
==============================================================================
--- jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/JMeter.java (original)
+++ jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/JMeter.java Tue Apr 4 18:20:50 2006
@@ -82,42 +82,46 @@
* @author mstover
*/
public class JMeter implements JMeterPlugin {
- transient private static Logger log = LoggingManager.getLoggerForClass();
- private static final int PROPFILE_OPT = 'p';
+ private static final Logger log = LoggingManager.getLoggerForClass();
- private static final int PROPFILE2_OPT = 'q'; // Bug 33920 - additional
- // prop files
+ public static final String HTTP_PROXY_PASS = "http.proxyPass"; // $NON-NLS-1$
- private static final int TESTFILE_OPT = 't';
+ public static final String HTTP_PROXY_USER = "http.proxyUser"; // $NON-NLS-1$
- private static final int LOGFILE_OPT = 'l';
+ private static final int PROPFILE_OPT = 'p';// $NON-NLS-1$
- private static final int NONGUI_OPT = 'n';
+ private static final int PROPFILE2_OPT = 'q'; // Bug 33920 - additional prop files $NON-NLS-1$
- private static final int HELP_OPT = 'h';
+ private static final int TESTFILE_OPT = 't';// $NON-NLS-1$
- private static final int VERSION_OPT = 'v';
+ private static final int LOGFILE_OPT = 'l';// $NON-NLS-1$
- private static final int SERVER_OPT = 's';
+ private static final int NONGUI_OPT = 'n';// $NON-NLS-1$
- private static final int PROXY_HOST = 'H';
+ private static final int HELP_OPT = 'h';// $NON-NLS-1$
- private static final int PROXY_PORT = 'P';
+ private static final int VERSION_OPT = 'v';// $NON-NLS-1$
- private static final int PROXY_USERNAME = 'u';
+ private static final int SERVER_OPT = 's';// $NON-NLS-1$
- private static final int PROXY_PASSWORD = 'a';
+ private static final int PROXY_HOST = 'H';// $NON-NLS-1$
- private static final int JMETER_PROPERTY = 'J';
+ private static final int PROXY_PORT = 'P';// $NON-NLS-1$
- private static final int SYSTEM_PROPERTY = 'D';
+ private static final int PROXY_USERNAME = 'u';// $NON-NLS-1$
- private static final int LOGLEVEL = 'L';
+ private static final int PROXY_PASSWORD = 'a';// $NON-NLS-1$
- private static final int REMOTE_OPT = 'r';
+ private static final int JMETER_PROPERTY = 'J';// $NON-NLS-1$
- private static final int JMETER_HOME_OPT = 'd';
+ private static final int SYSTEM_PROPERTY = 'D';// $NON-NLS-1$
+
+ private static final int LOGLEVEL = 'L';// $NON-NLS-1$
+
+ private static final int REMOTE_OPT = 'r';// $NON-NLS-1$
+
+ private static final int JMETER_HOME_OPT = 'd';// $NON-NLS-1$
/**
* Define the understood options. Each CLOptionDescriptor contains:
@@ -192,8 +196,8 @@
GuiPackage.getInstance(treeLis, treeModel);
org.apache.jmeter.gui.MainFrame main = new org.apache.jmeter.gui.MainFrame(ActionRouter.getInstance(),
treeModel, treeLis);
- main.setTitle("Apache JMeter");
- main.setIconImage(JMeterUtils.getImage("jmeter.jpg").getImage());
+ main.setTitle("Apache JMeter");// $NON-NLS-1$
+ main.setIconImage(JMeterUtils.getImage("jmeter.jpg").getImage());// $NON-NLS-1$
ComponentUtil.centerComponentInWindow(main, 80);
main.show();
ActionRouter.getInstance().actionPerformed(new ActionEvent(main, 1, ActionNames.ADD_ALL));
@@ -234,27 +238,27 @@
initializeProperties(parser);
setProxy(parser);
log.info("Version " + JMeterUtils.getJMeterVersion());
- log.info("java.version=" + System.getProperty("java.version"));
- log.info("os.name=" + System.getProperty("os.name"));
- log.info("os.arch=" + System.getProperty("os.arch"));
- log.info("os.version=" + System.getProperty("os.version"));
- log.info("Locale=" + Locale.getDefault().getDisplayName());
+ log.info("java.version=" + System.getProperty("java.version"));// $NON-NLS-1$ $NON-NLS-2$
+ log.info("os.name=" + System.getProperty("os.name"));// $NON-NLS-1$ $NON-NLS-2$
+ log.info("os.arch=" + System.getProperty("os.arch"));// $NON-NLS-1$ $NON-NLS-2$
+ log.info("os.version=" + System.getProperty("os.version"));// $NON-NLS-1$ $NON-NLS-2$
+ log.info("Locale=" + Locale.getDefault().getDisplayName());// $NON-NLS-1$
log.info(JMeterUtils.getJMeterCopyright());
- log.info("JMeterHome="+JMeterUtils.getJMeterHome());
+ log.info("JMeterHome="+JMeterUtils.getJMeterHome());// $NON-NLS-1$
updateClassLoader();
if (log.isDebugEnabled())
{
- String jcp=System.getProperty("java.class.path");
+ String jcp=System.getProperty("java.class.path");// $NON-NLS-1$
log.debug(jcp);
}
if (parser.getArgumentById(VERSION_OPT) != null) {
System.out.println(JMeterUtils.getJMeterCopyright());
System.out.println("Version " + JMeterUtils.getJMeterVersion());
} else if (parser.getArgumentById(HELP_OPT) != null) {
- System.out.println(JMeterUtils.getResourceFileAsText("org/apache/jmeter/help.txt"));
+ System.out.println(JMeterUtils.getResourceFileAsText("org/apache/jmeter/help.txt"));// $NON-NLS-1$
} else if (parser.getArgumentById(SERVER_OPT) != null) {
- startServer(JMeterUtils.getPropDefault("server_port", 0));
+ startServer(JMeterUtils.getPropDefault("server_port", 0));// $NON-NLS-1$
startBSH();
} else if (parser.getArgumentById(NONGUI_OPT) == null) {
startGui(parser.getArgumentById(TESTFILE_OPT));
@@ -277,9 +281,9 @@
// Update classloader if necessary
private void updateClassLoader() {
- String userpath= JMeterUtils.getPropDefault("user.classpath","");
+ String userpath= JMeterUtils.getPropDefault("user.classpath","");// $NON-NLS-1$
if (userpath.length()> 0){
- log.info("user.classpath="+userpath);
+ log.info("user.classpath="+userpath);// $NON-NLS-1$
StringTokenizer tok = new StringTokenizer(userpath, File.pathSeparator);
while(tok.hasMoreTokens()) {
String path=tok.nextToken();
@@ -289,7 +293,7 @@
} else {
URL url;
try {
- url = new URL("file","",path);
+ url = new URL("file","",path);// $NON-NLS-1$
NewDriver.addURL(url);
} catch (MalformedURLException e) {
log.warn("Can't create URL for "+path+" "+e);
@@ -303,8 +307,8 @@
*
*/
private void startBSH() {
- int bshport = JMeterUtils.getPropDefault("beanshell.server.port", 0);
- String bshfile = JMeterUtils.getPropDefault("beanshell.server.file", "");
+ int bshport = JMeterUtils.getPropDefault("beanshell.server.port", 0);// $NON-NLS-1$
+ String bshfile = JMeterUtils.getPropDefault("beanshell.server.file", "");// $NON-NLS-1$ $NON-NLS-2$
if (bshport > 0) {
log.info("Starting Beanshell server (" + bshport + "," + bshfile + ")");
Runnable t = new BeanShellServer(bshport, bshfile);
@@ -318,27 +322,31 @@
*/
private void setProxy(CLArgsParser parser) throws IllegalUserActionException {
if (parser.getArgumentById(PROXY_USERNAME) != null) {
+ Properties jmeterProps = JMeterUtils.getJMeterProperties();
if (parser.getArgumentById(PROXY_PASSWORD) != null) {
String u, p;
Authenticator.setDefault(new ProxyAuthenticator(u = parser.getArgumentById(PROXY_USERNAME)
.getArgument(), p = parser.getArgumentById(PROXY_PASSWORD).getArgument()));
log.info("Set Proxy login: " + u + "/" + p);
+ jmeterProps.setProperty(HTTP_PROXY_USER, u);
+ jmeterProps.setProperty(HTTP_PROXY_PASS, p);
} else {
String u;
Authenticator.setDefault(new ProxyAuthenticator(u = parser.getArgumentById(PROXY_USERNAME)
.getArgument(), ""));
log.info("Set Proxy login: " + u);
+ jmeterProps.setProperty(HTTP_PROXY_USER, u);
}
}
if (parser.getArgumentById(PROXY_HOST) != null && parser.getArgumentById(PROXY_PORT) != null) {
String h, p;
- System.setProperty("http.proxyHost", h = parser.getArgumentById(PROXY_HOST).getArgument());
- System.setProperty("https.proxyHost", parser.getArgumentById(PROXY_HOST).getArgument());
- System.setProperty("http.proxyPort", p = parser.getArgumentById(PROXY_PORT).getArgument());
- System.setProperty("https.proxyPort", parser.getArgumentById(PROXY_PORT).getArgument());
+ System.setProperty("http.proxyHost", h = parser.getArgumentById(PROXY_HOST).getArgument());// $NON-NLS-1$
+ System.setProperty("https.proxyHost", parser.getArgumentById(PROXY_HOST).getArgument());// $NON-NLS-1$
+ System.setProperty("http.proxyPort", p = parser.getArgumentById(PROXY_PORT).getArgument());// $NON-NLS-1$
+ System.setProperty("https.proxyPort", parser.getArgumentById(PROXY_PORT).getArgument());// $NON-NLS-1$
log.info("Set http[s].proxyHost: " + h + " Port: " + p);
} else if (parser.getArgumentById(PROXY_HOST) != null || parser.getArgumentById(PROXY_PORT) != null) {
- throw new IllegalUserActionException(JMeterUtils.getResString("proxy_cl_error"));
+ throw new IllegalUserActionException(JMeterUtils.getResString("proxy_cl_error"));// $NON-NLS-1$
}
}
@@ -346,8 +354,9 @@
if (parser.getArgumentById(PROPFILE_OPT) != null) {
JMeterUtils.getProperties(parser.getArgumentById(PROPFILE_OPT).getArgument());
} else {
- JMeterUtils.getProperties(NewDriver.getJMeterDir() + File.separator + "bin" + File.separator
- + "jmeter.properties");
+ JMeterUtils.getProperties(NewDriver.getJMeterDir() + File.separator
+ + "bin" + File.separator // $NON-NLS-1$
+ + "jmeter.properties");// $NON-NLS-1$
}
// Bug 33845 - allow direct override of Home dir
@@ -431,7 +440,7 @@
throws IllegalUserActionException {
// add a system property so samplers can check to see if JMeter
// is running in NonGui mode
- System.setProperty("JMeter.NonGui", "true");
+ System.setProperty("JMeter.NonGui", "true");// $NON-NLS-1$
JMeter driver = new JMeter();
driver.parent = this;
PluginManager.install(this, false);
@@ -446,11 +455,8 @@
}
}
- private void run(String testFile, String logFile, boolean remoteStart) { // run
- // test
- // in
- // batch
- // mode
+ // run test in batch mode
+ private void run(String testFile, String logFile, boolean remoteStart) {
FileInputStream reader = null;
try {
File f = new File(testFile);
@@ -490,8 +496,10 @@
println("Starting the test");
engine.runTest();
} else {
- String remote_hosts_string = JMeterUtils.getPropDefault("remote_hosts", "127.0.0.1");
- java.util.StringTokenizer st = new java.util.StringTokenizer(remote_hosts_string, ",");
+ String remote_hosts_string = JMeterUtils.getPropDefault(
+ "remote_hosts", //$NON-NLS-1$
+ "127.0.0.1");//$NON-NLS-1$
+ java.util.StringTokenizer st = new java.util.StringTokenizer(remote_hosts_string, ",");//$NON-NLS-1$
List engines = new LinkedList();
while (st.hasMoreElements()) {
String el = (String) st.nextElement();
@@ -594,7 +602,7 @@
}
public void testStarted() {
- log.info(JMeterUtils.getResString("running_test"));
+ log.info(JMeterUtils.getResString("running_test"));//$NON-NLS-1$
}
/**
@@ -634,11 +642,11 @@
}
private static final String[][] DEFAULT_ICONS = {
- { TestPlanGui.class.getName(), "org/apache/jmeter/images/beaker.gif" },
- { AbstractTimerGui.class.getName(), "org/apache/jmeter/images/timer.gif" },
- { ThreadGroupGui.class.getName(), "org/apache/jmeter/images/thread.gif" },
- { AbstractVisualizer.class.getName(), "org/apache/jmeter/images/meter.png" },
- { AbstractConfigGui.class.getName(), "org/apache/jmeter/images/testtubes.png" },
+ { TestPlanGui.class.getName(), "org/apache/jmeter/images/beaker.gif" },//$NON-NLS-1$
+ { AbstractTimerGui.class.getName(), "org/apache/jmeter/images/timer.gif" },//$NON-NLS-1$
+ { ThreadGroupGui.class.getName(), "org/apache/jmeter/images/thread.gif" },//$NON-NLS-1$
+ { AbstractVisualizer.class.getName(), "org/apache/jmeter/images/meter.png" },//$NON-NLS-1$
+ { AbstractConfigGui.class.getName(), "org/apache/jmeter/images/testtubes.png" },//$NON-NLS-1$
// Note: these were the original settings (just moved to a static
// array)
// Commented out because there is no such file
@@ -648,14 +656,15 @@
// {
// AbstractPostProcessorGui.class.getName(),
// "org/apache/jmeter/images/testtubes.gif" },
- { AbstractControllerGui.class.getName(), "org/apache/jmeter/images/knob.gif" },
- { WorkBenchGui.class.getName(), "org/apache/jmeter/images/clipboard.gif" },
- { AbstractSamplerGui.class.getName(), "org/apache/jmeter/images/pipet.png" }
+ { AbstractControllerGui.class.getName(), "org/apache/jmeter/images/knob.gif" },//$NON-NLS-1$
+ { WorkBenchGui.class.getName(), "org/apache/jmeter/images/clipboard.gif" },//$NON-NLS-1$
+ { AbstractSamplerGui.class.getName(), "org/apache/jmeter/images/pipet.png" }//$NON-NLS-1$
// AbstractAssertionGUI not defined
};
public String[][] getIconMappings() {
- String iconProp = JMeterUtils.getPropDefault("jmeter.icons", "org/apache/jmeter/images/icon.properties");
+ String iconProp = JMeterUtils.getPropDefault("jmeter.icons",//$NON-NLS-1$
+ "org/apache/jmeter/images/icon.properties");//$NON-NLS-1$
Properties p = JMeterUtils.loadProperties(iconProp);
if (p == null) {
log.info(iconProp + " not found - using default icon set");
@@ -667,7 +676,7 @@
int i = 0;
while (pe.hasMoreElements()) {
String key = (String) pe.nextElement();
- String icons[] = JOrphanUtils.split(p.getProperty(key), " ");
+ String icons[] = JOrphanUtils.split(p.getProperty(key), " ");//$NON-NLS-1$
iconlist[i][0] = key;
iconlist[i][1] = icons[0];
if (icons.length > 1)
Modified: jakarta/jmeter/branches/rel-2-1/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
URL: http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java?rev=391464&r1=391463&r2=391464&view=diff
==============================================================================
--- jakarta/jmeter/branches/rel-2-1/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java (original)
+++ jakarta/jmeter/branches/rel-2-1/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java Tue Apr 4 18:20:50 2006
@@ -21,11 +21,10 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-
import java.util.Date;
-import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.Map;
import java.util.zip.GZIPInputStream;
import org.apache.commons.httpclient.HostConfiguration;
@@ -43,15 +42,15 @@
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.httpclient.protocol.Protocol;
-import org.apache.jmeter.config.Argument;
+import org.apache.jmeter.JMeter;
+import org.apache.jmeter.config.Argument;
import org.apache.jmeter.protocol.http.control.AuthManager;
import org.apache.jmeter.protocol.http.control.Authorization;
+import org.apache.jmeter.protocol.http.control.Cookie;
import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.HeaderManager;
-import org.apache.jmeter.protocol.http.control.Cookie;
import org.apache.jmeter.protocol.http.util.SlowHttpClientSocketFactory;
-
import org.apache.jmeter.testelement.property.CollectionProperty;
import org.apache.jmeter.testelement.property.PropertyIterator;
import org.apache.jmeter.util.JMeterUtils;
@@ -75,6 +74,12 @@
private static final int PROXY_PORT =
Integer.parseInt(System.getProperty("http.proxyPort", "80")); // $NON-NLS-1$ $NON-NLS-2$
+ private static final String PROXY_USER =
+ JMeterUtils.getPropDefault(JMeter.HTTP_PROXY_USER,""); // $NON-NLS-1$
+
+ private static final String PROXY_PASS =
+ JMeterUtils.getPropDefault(JMeter.HTTP_PROXY_PASS,""); // $NON-NLS-1$
+
/*
* Connection is re-used within the thread if possible
*/
@@ -154,7 +159,7 @@
File input = new File(filename);
// TODO: is this header correct?
post.setRequestHeader(HEADER_CONTENT_DISPOSITION
- , "form-data; name=\"" // $NON-NLS-1$ // $NON-NLS-1$
+ , "form-data; name=\"" // $NON-NLS-1$
+ encode(sampler.getFileField())
+ "\"; filename=\"" // $NON-NLS-1$
+ encode(filename) + "\""); // $NON-NLS-1$
@@ -214,10 +219,6 @@
HostConfiguration hc = new HostConfiguration();
hc.setHost(host, port, protocol); // All needed to ensure re-usablility
- if (PROXY_HOST.length() > 0) {
- hc.setProxy(PROXY_HOST, PROXY_PORT);
- }
-
Map map = (Map) httpClients.get();
HttpClient httpClient = (HttpClient) map.get(hc);
@@ -226,6 +227,21 @@
httpClient = new HttpClient(new SimpleHttpConnectionManager());
map.put(hc, httpClient);
}
+
+ if (PROXY_HOST.length() > 0) {
+ hc.setProxy(PROXY_HOST, PROXY_PORT);
+ if (PROXY_USER.length() > 0){
+ httpClient.getState().setProxyCredentials(
+ new AuthScope(PROXY_HOST,PROXY_PORT,null,AuthScope.ANY_SCHEME),
+ // NT Includes other types of Credentials
+ new NTCredentials(
+ PROXY_USER,
+ PROXY_PASS,
+ null, // "thishost",
+ null // domain
+ ));
+ }
+ }
HttpMethodParams params = httpMethod.getParams();
params.setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org