jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Buechi Martin" <Martin.Bue...@avaloq.com>
Subject Remote Thread Naming and other suggestions
Date Thu, 24 Mar 2005 15:57:58 GMT
All,

To me it seems unfortunate that when multiple remote_hosts are used, there are multiple threads
with the same thread names in the XML output. This makes the output less useful. Would it
be possible to add the IP address (InetAddress.getLocalHost()) of the host at the end of the
thread name in StandardJMeterEngine or is the functionality that I am looking for already
available?

Next question: By modifying FunctionProperty.getStringValue to the following, I can use property
values, e.g., ${__property(report.dir)}/file.xml in the File Reporter. Would it be possible
to take this modification into the release?

    public String getStringValue() {
        log.debug("Calling getStringValue from FunctionProperty");
        log.debug("boogedy boogedy");
        JMeterContext ctx = JMeterContextService.getContext();//Expensive, so do once
        int iter = 0;
        JMeterVariables var = ctx.getVariables();
        if (var != null) {
            iter = ctx.getVariables().getIteration();
            if (iter < testIteration) {
                testIteration = -1;
            }
        }
        if (iter > testIteration || cacheValue == null) {
            testIteration = iter;
            cacheValue = function.execute();
        }
        return cacheValue;
    }

Unfortunately, this doesn't yet solve the problems of resolving variables in the Custom Variables
of the Test Plan because the replacer is not used in PreCompiler.addNode. Could this also
be fixed, please? I am happy to help, if desired.

I find it kind of annoying that a separate VM is required for the RMI registry in remote servers.
Hence, I have created my own startup class. Probably, you would want to execute the registry
creation part only if there is an i such that "-r".equals(args[i]):

public class Startup {

    public static void main(String[] args) throws Throwable {
        try {
            String base = Startup.class.getProtectionDomain().getCodeSource().getLocation().toString();
            int index = base.lastIndexOf("/bin/");
            base = base.substring(0, index + 1);
            String codebase = base + "lib/ext/ApacheJMeter_core.jar" + " " + base + "lib/jorphan.jar"
+ " " + base + "lib/logkit-1.2.jar";
            System.setProperty("java.rmi.server.codebase", codebase);
            System.setSecurityManager(new SecurityManager() {

                public void checkPermission(Permission perm) {
                }

                public void checkPermission(Permission perm, Object context) {
                }
            });
            LocateRegistry.createRegistry(1099);
            NewDriver.main(args);
        } catch (Throwable t) {
            t.printStackTrace();
            throw t;
        } finally {
        }
    }
}

I have used InstallAnywhere to turn the JMeter remote engine into a Windows service. However,
I think it would be even better if the Java Service Wrapper (http://wrapper.tanukisoftware.org/doc/english/index.html)
were used. This would also allow a restart of the VM after each test, just in case we have
a memory issue.

Regards,

Martin

------------------------------------------ 
A v a l o q - essential for banking 
Avaloq Evolution AG 
Allmendstrasse 140, 8027 Zürich 
T +41 44 488 6888, F +41 44 488 6868, <http://www.avaloq.com/> 
Martin Büchi <mailto:martin.buechi@avaloq.com> 


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Mime
View raw message