Author: sebb
Date: Thu May 8 09:13:16 2008
New Revision: 654572
URL: http://svn.apache.org/viewvc?rev=654572&view=rev
Log:
Allow use of special name LAST to mean the last test run; applies to -t, -l, -j
flags
Modified:
jakarta/jmeter/trunk/bin/jmeter-n-r.cmd
jakarta/jmeter/trunk/bin/jmeter-n.cmd
jakarta/jmeter/trunk/bin/jmeter-t.cmd
jakarta/jmeter/trunk/docs/changes.html
jakarta/jmeter/trunk/docs/usermanual/get-started.html
jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
jakarta/jmeter/trunk/xdocs/changes.xml
jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml
Modified: jakarta/jmeter/trunk/bin/jmeter-n-r.cmd
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter-n-r.cmd?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter-n-r.cmd (original)
+++ jakarta/jmeter/trunk/bin/jmeter-n-r.cmd Thu May 8 09:13:16 2008
@@ -36,6 +36,10 @@
rem Check file is supplied
if a == a%1 goto winNT2
+
+rem Allow special name LAST
+if aLAST == a%1 goto winNT3
+
rem Check it has extension .jmx
if a%~x1 == a.jmx goto winNT3
:winNT2
Modified: jakarta/jmeter/trunk/bin/jmeter-n.cmd
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter-n.cmd?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter-n.cmd (original)
+++ jakarta/jmeter/trunk/bin/jmeter-n.cmd Thu May 8 09:13:16 2008
@@ -36,6 +36,10 @@
rem Check file is supplied
if a == a%1 goto winNT2
+
+rem Allow special name LAST
+if aLAST == a%1 goto winNT3
+
rem Check it has extension .jmx
if a%~x1 == a.jmx goto winNT3
:winNT2
Modified: jakarta/jmeter/trunk/bin/jmeter-t.cmd
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter-t.cmd?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter-t.cmd (original)
+++ jakarta/jmeter/trunk/bin/jmeter-t.cmd Thu May 8 09:13:16 2008
@@ -34,6 +34,10 @@
rem Check file is supplied
if a == a%1 goto winNT2
+
+rem Allow special name LAST
+if aLAST == a%1 goto winNT3
+
rem Check it has extension .jmx
if a%~x1 == a.jmx goto winNT3
:winNT2
Modified: jakarta/jmeter/trunk/docs/changes.html
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/changes.html?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/changes.html (original)
+++ jakarta/jmeter/trunk/docs/changes.html Thu May 8 09:13:16 2008
@@ -652,6 +652,11 @@
</li>
+
<li >
+ Allow use of
special name LAST to mean the last test run; applies to -t, -l, -j flags
+ </li>
+
+
</ul>
<h4 >
Non-functional
changes
@@ -920,7 +925,6 @@
Aggregate Graph
and Aggregate Report Column Header is KB/Sec; fixed the values to be KB rather
than bytes
</li>
-
<li >
@@ -2511,6 +2515,7 @@
</h4>
<ul >
+
<li >
Post-processors
run in reverse order (see bug 41140)
Modified: jakarta/jmeter/trunk/docs/usermanual/get-started.html
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/usermanual/get-started.html?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/usermanual/get-started.html (original)
+++ jakarta/jmeter/trunk/docs/usermanual/get-started.html Thu May 8 09:13:16
2008
@@ -724,6 +724,8 @@
</ul>
+Note: the special name LAST can be used with jmeter-n.cmd, jmeter-t.cmd and
jmeter-n-r.cmd
+and means the last test plan that was run interactively.
</p>
<p >
@@ -1205,6 +1207,12 @@
if it contains paired single-quotes, .e.g. 'jmeter_'yyyyMMddHHmmss'.log'
</p>
+
<p >
+
+If the special name LAST is used for the -t, -j or -l flags, then JMeter takes
that to mean the last test plan
+that was run in interactive mode.
+
+ </p>
</blockquote>
</td></tr>
<tr><td><br></td></tr>
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Thu May 8
09:13:16 2008
@@ -52,6 +52,7 @@
import org.apache.jmeter.gui.action.ActionNames;
import org.apache.jmeter.gui.action.ActionRouter;
import org.apache.jmeter.gui.action.Load;
+import org.apache.jmeter.gui.action.LoadRecentProject;
import org.apache.jmeter.gui.tree.JMeterTreeListener;
import org.apache.jmeter.gui.tree.JMeterTreeModel;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
@@ -90,6 +91,11 @@
public static final String HTTP_PROXY_USER = "http.proxyUser"; //
$NON-NLS-1$
+ // If the -t flag is to "LAST", then the last loaded file (if any) is used
+ private static final String USE_LAST_JMX = "LAST";
+ // If the -j or -l flag is set to LAST or LAST.log|LAST.jtl, then the
last loaded file name is used to
+ // generate the log file name by removing .JMX and replacing it with
.log|.jtl
+
private static final int PROXY_PASSWORD = 'a';// $NON-NLS-1$
private static final int JMETER_HOME_OPT = 'd';// $NON-NLS-1$
private static final int HELP_OPT = 'h';// $NON-NLS-1$
@@ -204,7 +210,7 @@
/**
* Starts up JMeter in GUI mode
*/
- private void startGui(CLOption testFile) {
+ private void startGui(String testFile) {
PluginManager.install(this, true);
JMeterTreeModel treeModel = new JMeterTreeModel();
@@ -216,11 +222,10 @@
ComponentUtil.centerComponentInWindow(main, 80);
main.show();
ActionRouter.getInstance().actionPerformed(new
ActionEvent(main, 1, ActionNames.ADD_ALL));
- String arg;
- if (testFile != null && (arg = testFile.getArgument()) != null)
{
+ if (testFile != null) {
FileInputStream reader = null;
try {
- File f = new File(arg);
+ File f = new File(testFile);
log.info("Loading file: " + f);
reader = new FileInputStream(f);
HashTree tree = SaveService.loadTree(reader);
@@ -332,17 +337,30 @@
// Start the server
startServer(JMeterUtils.getPropDefault("server_port", 0));// $NON-NLS-1$
startOptionalServers();
- } else if (parser.getArgumentById(NONGUI_OPT) == null) {
- startGui(parser.getArgumentById(TESTFILE_OPT));
- startOptionalServers();
} else {
- CLOption
rem=parser.getArgumentById(REMOTE_OPT_PARAM);
- if (rem==null) {
rem=parser.getArgumentById(REMOTE_OPT); }
-
startNonGui(parser.getArgumentById(TESTFILE_OPT),
-
parser.getArgumentById(LOGFILE_OPT),
- rem);
- startOptionalServers();
- }
+ String testFile=null;
+ CLOption testFileOpt = parser.getArgumentById(TESTFILE_OPT);
+ if (testFileOpt != null){
+ testFile = testFileOpt.getArgument();
+ if (USE_LAST_JMX.equals(testFile)) {
+ testFile = LoadRecentProject.getRecentFile(0);//
most recent
+ }
+ }
+ if (parser.getArgumentById(NONGUI_OPT) == null) {
+ startGui(testFile);
+ startOptionalServers();
+ } else {
+ CLOption rem=parser.getArgumentById(REMOTE_OPT_PARAM);
+ if (rem==null) {
rem=parser.getArgumentById(REMOTE_OPT); }
+ CLOption jtl = parser.getArgumentById(LOGFILE_OPT);
+ String jtlFile = null;
+ if (jtl != null){
+ jtlFile=processLAST(jtl.getArgument(), ".jtl"); //
$NON-NLS-1$
+ }
+ startNonGui(testFile, jtlFile, rem);
+ startOptionalServers();
+ }
+ }
} catch (IllegalUserActionException e) {
System.out.println(e.getMessage());
System.out.println("Incorrect Usage");
@@ -476,11 +494,12 @@
+ "jmeter.properties");// $NON-NLS-1$
}
- if (parser.getArgumentById(JMLOGFILE_OPT) != null){
- String
jmlogfile=parser.getArgumentById(JMLOGFILE_OPT).getArgument();
-
JMeterUtils.setProperty(LoggingManager.LOG_FILE,jmlogfile);
- }
-
+ if (parser.getArgumentById(JMLOGFILE_OPT) != null){
+ String
jmlogfile=parser.getArgumentById(JMLOGFILE_OPT).getArgument();
+ jmlogfile = processLAST(jmlogfile, ".log");// $NON-NLS-1$
+ JMeterUtils.setProperty(LoggingManager.LOG_FILE,jmlogfile);
+ }
+
JMeterUtils.initLogging();
JMeterUtils.initLocale();
// Bug 33845 - allow direct override of Home dir
@@ -602,7 +621,6 @@
File propFile = new File(name);
if (propFile.canRead()) {
log.info("Setting Global
properties from the file "+name);
- fis = null;
try {
fis = new
FileInputStream(propFile);
remoteProps.load(fis);
@@ -633,6 +651,21 @@
}
+ /*
+ * Checks for LAST or LASTsuffix.
+ * Returns the LAST name with .JMX replaced by suffix.
+ */
+ private String processLAST(String jmlogfile, String suffix) {
+ if (USE_LAST_JMX.equals(jmlogfile) ||
USE_LAST_JMX.concat(suffix).equals(jmlogfile)){
+ String last = LoadRecentProject.getRecentFile(0);// most recent
+ final String JMX_SUFFIX = ".JMX"; // $NON-NLS-1$
+ if (last.toUpperCase(Locale.ENGLISH).endsWith(JMX_SUFFIX)){
+ jmlogfile=last.substring(0, last.length() -
JMX_SUFFIX.length()).concat(suffix);
+ }
+ }
+ return jmlogfile;
+ }
+
private void startServer(int port) {
try {
new RemoteJMeterEngineImpl(port);
@@ -643,7 +676,7 @@
}
}
- private void startNonGui(CLOption testFile, CLOption logFile, CLOption
remoteStart)
+ private void startNonGui(String testFile, String logFile, CLOption
remoteStart)
throws IllegalUserActionException {
// add a system property so samplers can check to see if JMeter
// is running in NonGui mode
@@ -666,14 +699,10 @@
if (testFile == null) {
throw new IllegalUserActionException("Non-GUI runs
require a test plan");
}
- String argument = testFile.getArgument();
- if (argument == null) {
- throw new IllegalUserActionException("Non-GUI runs require a test
plan");
- }
if (logFile == null) {
- driver.run(argument, null, remoteStart !=
null,remote_hosts_string);
+ driver.run(testFile, null, remoteStart !=
null,remote_hosts_string);
} else {
- driver.run(argument, logFile.getArgument(), remoteStart
!= null,remote_hosts_string);
+ driver.run(testFile, logFile, remoteStart !=
null,remote_hosts_string);
}
}
@@ -724,7 +753,7 @@
}
List engines = new LinkedList();
tree.add(tree.getArray()[0], new ListenToTest(parent,
(remoteStart && remoteStop) ? engines : null));
- println("Created the tree successfully");
+ println("Created the tree successfully using
"+testFile);
JMeterEngine engine = null;
if (!remoteStart) {
engine = new StandardJMeterEngine();
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu May 8 09:13:16 2008
@@ -193,6 +193,7 @@
<li>Bug 44872 - Add "All Files" filter to Open File dialogs</li>
<li>Mirror server can now be run independently (mirror-server.cmd and
mirror-server.sh)</li>
<li>Bug 19128 - Added multiple file POST support to HTTP Samplers</li>
+<li>Allow use of special name LAST to mean the last test run; applies to -t,
-l, -j flags</li>
</ul>
<h4>Non-functional changes</h4>
Modified: jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml Thu May 8 09:13:16
2008
@@ -206,6 +206,8 @@
<li>jmeter-t.cmd - drop a JMX file on this to load it in GUI mode</li>
<li>jmeter-server.bat - start JMeter in server mode</li>
</ul>
+Note: the special name LAST can be used with jmeter-n.cmd, jmeter-t.cmd and
jmeter-n-r.cmd
+and means the last test plan that was run interactively.
</p>
<p>
@@ -411,6 +413,10 @@
Note: the JMeter log file name is formatted as a SimpleDateFormat (applied to
the current date)
if it contains paired single-quotes, .e.g. 'jmeter_'yyyyMMddHHmmss'.log'
</p>
+<p>
+If the special name LAST is used for the -t, -j or -l flags, then JMeter takes
that to mean the last test plan
+that was run in interactive mode.
+</p>
</subsection>
</section>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]