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 Simon <sd...@gmail.com> on 2006/09/21 19:15:33 UTC

modifing RemoteStart for runing diferent scripts remotely

hi, i am looking the source and i find a easy way (that is what i think) to
run diferent script remotely. i will tell you and i want to know if it is
posible and right.

the idea is to modify this method:

    private void initEngine(JMeterEngine engine, String host) {
        GuiPackage gui = GuiPackage.getInstance();
        HashTree testTree = gui.getTreeModel().getTestPlan();
        convertSubTree(testTree);
        testTree.add(testTree.getArray()[0], gui.getMainFrame());
        engine.configure(testTree);
    }

that is in the class: org.apache.jmeter.gui.action.RemoteStart.java

and change it for something like that:

    private void initEngine(JMeterEngine engine, String host) {
        GuiPackage gui = GuiPackage.getInstance();

        /* this is the change */
        String scriptName = getFromProperties("new_config_file.properties",
host);
        File scriptFile = open(scriptName);
        convertSubTree( getTestPlan(scriptFile) );

//        HashTree testTree = gui.getTreeModel().getTestPlan();
//        convertSubTree(testTree);

        testTree.add(testTree.getArray()[0], gui.getMainFrame());
        engine.configure(testTree);
    }

i will need some help to implement this functions reusing the code that is
already implemented.

ok, tell what you think about it ...
regards,
Simon

Re: modifing RemoteStart for runing diferent scripts remotely

Posted by Simon <sd...@gmail.com>.
hi, i finaly write the follow code, i test it a litle and it works.

    private void initEngine(JMeterEngine engine, String host) {
        GuiPackage gui = GuiPackage.getInstance();

        String scriptName =
getFromProperties("configuracion_generadores_remotos.properties", host);

        if (scriptName == "") {
            HashTree testTree = gui.getTreeModel().getTestPlan();
            convertSubTree(testTree);
            testTree.add(testTree.getArray()[0], gui.getMainFrame ());
            engine.configure(testTree);
        } else {

            InputStream reader = null;
            File f = new File(scriptName);

            try {
                reader = new FileInputStream(f);
                HashTree tree = SaveService.loadTree(reader);
                convertSubTree(tree);
                tree.add(tree.getArray()[0], gui.getMainFrame());

                engine.configure(tree);

        //        GuiPackage gui = GuiPackage.getInstance();
        //        HashTree testTree = gui.getTreeModel().getTestPlan();
        //        convertSubTree(testTree);
        //        testTree.add(testTree.getArray()[0], gui.getMainFrame());
            } catch (Exception e){
                log.warn("Problema al cargar script en el servidor remoto",
e);
                String msg = e.getMessage();
                if (msg == null) {
                    msg = "Problema al intentar cargar el script en el
servidor remoto";
                }
                JMeterUtils.reportErrorToUser(msg);
            }
        }
    }

    private String getFromProperties(String fileName, String key) {
        String res = "";
        try {
            Properties defaultProps = new Properties();
            FileInputStream in = new FileInputStream(fileName);
            defaultProps.load(in);

            res = defaultProps.getProperty(key);

            in.close();
        } catch (Exception e) {
            log.warn("Problema de Simon", e);
            String msg = e.getMessage();
            if (msg == null) {
                msg = "Problema al levantar la ruta al archivo del script";
            }
            JMeterUtils.reportErrorToUser(msg);

        }
        return res;
    }

this are the configurations:
  jmeter.properties
     # Remote Hosts - comma delimited
     remote_hosts=127.0.0.1,164.73.36.199:1099
     #remote_hosts:localhost:1099,localhost:2010


configuracion_generadores_remotos.properties
     164.73.36.199=notepad.jmx
     127.0.0.1=calculadora.jmx

i think you could take the idea, and perhaps make it more prolix and
incorporate it on next releases ...

like a comment, it is very easy to navigate and read the code ... you made a
very good job.

see you,
simon

Re: modifing RemoteStart for runing diferent scripts remotely

Posted by Simon <sd...@gmail.com>.
ok work a litle on the idea .. the result is that:

    private void initEngine(JMeterEngine engine, String host) {
        GuiPackage gui = GuiPackage.getInstance();

        String scriptName =
getFromProperties("configuracion_generadores_remotos.properties", host);

        if (scriptName == "") {
            HashTree testTree = gui.getTreeModel().getTestPlan();
            convertSubTree(testTree);
            testTree.add(testTree.getArray()[0], gui.getMainFrame ());
            engine.configure(testTree);
        } else {

            InputStream reader = null;
            File f = new File(scriptName);

            try {
                reader = new FileInputStream(f);
                HashTree tree = SaveService.loadTree(reader);
                convertSubTree(tree);

                // i am not shure about what does this.
                tree.add(tree.getArray()[0], gui.getMainFrame());

                engine.configure(tree);

        //        GuiPackage gui = GuiPackage.getInstance();
        //        HashTree testTree = gui.getTreeModel().getTestPlan();
        //        convertSubTree(testTree);
        //        testTree.add(testTree.getArray()[0], gui.getMainFrame());
            } catch (Exception e){
                log.warn("Problema al cargar script en el servidor remoto",
e);
                String msg = e.getMessage();
                if (msg == null) {
                    msg = "Problema al intentar cargar el script en el
servidor remoto";
                }
                JMeterUtils.reportErrorToUser(msg);
            }
        }
    }

    private String getFromProperties(String fileName, String key) {
        String res = "";
        try {
            Properties defaultProps = new Properties();
            FileInputStream in = new FileInputStream(fileName);
            defaultProps.load(in);

            res = defaultProps.getProperty(key);

            in.close();
        } catch (Exception e) {
            log.warn("Problema de Simon", e);
            String msg = e.getMessage();
            if (msg == null) {
                msg = "Problema al levantar la ruta al archivo del script";
            }
            JMeterUtils.reportErrorToUser(msg);

        }
        return res;
    }


but, i know it is horrible from the point of architectural view.
thanks for any help for do it in the correct way ..

simon

On 9/21/06, sebb <se...@gmail.com> wrote:
>
> Sorry, I don't have time to look at this - maybe others can.
>
> S.
> On 21/09/06, Simon <sd...@gmail.com> wrote:
> > hi, i am looking the source and i find a easy way (that is what i think)
> to
> > run diferent script remotely. i will tell you and i want to know if it
> is
> > posible and right.
> >
> > the idea is to modify this method:
> >
> >    private void initEngine(JMeterEngine engine, String host) {
> >        GuiPackage gui = GuiPackage.getInstance();
> >        HashTree testTree = gui.getTreeModel().getTestPlan();
> >        convertSubTree(testTree);
> >        testTree.add(testTree.getArray()[0], gui.getMainFrame());
> >        engine.configure(testTree);
> >    }
> >
> > that is in the class: org.apache.jmeter.gui.action.RemoteStart.java
> >
> > and change it for something like that:
> >
> >    private void initEngine(JMeterEngine engine, String host) {
> >        GuiPackage gui = GuiPackage.getInstance();
> >
> >        /* this is the change */
> >        String scriptName =
> getFromProperties("new_config_file.properties",
> > host);
> >        File scriptFile = open(scriptName);
> >        convertSubTree( getTestPlan(scriptFile) );
> >
> > //        HashTree testTree = gui.getTreeModel().getTestPlan();
> > //        convertSubTree(testTree);
> >
> >        testTree.add(testTree.getArray()[0], gui.getMainFrame());
> >        engine.configure(testTree);
> >    }
> >
> > i will need some help to implement this functions reusing the code that
> is
> > already implemented.
> >
> > ok, tell what you think about it ...
> > regards,
> > Simon
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org
>
>

Re: modifing RemoteStart for runing diferent scripts remotely

Posted by sebb <se...@gmail.com>.
Sorry, I don't have time to look at this - maybe others can.

S.
On 21/09/06, Simon <sd...@gmail.com> wrote:
> hi, i am looking the source and i find a easy way (that is what i think) to
> run diferent script remotely. i will tell you and i want to know if it is
> posible and right.
>
> the idea is to modify this method:
>
>    private void initEngine(JMeterEngine engine, String host) {
>        GuiPackage gui = GuiPackage.getInstance();
>        HashTree testTree = gui.getTreeModel().getTestPlan();
>        convertSubTree(testTree);
>        testTree.add(testTree.getArray()[0], gui.getMainFrame());
>        engine.configure(testTree);
>    }
>
> that is in the class: org.apache.jmeter.gui.action.RemoteStart.java
>
> and change it for something like that:
>
>    private void initEngine(JMeterEngine engine, String host) {
>        GuiPackage gui = GuiPackage.getInstance();
>
>        /* this is the change */
>        String scriptName = getFromProperties("new_config_file.properties",
> host);
>        File scriptFile = open(scriptName);
>        convertSubTree( getTestPlan(scriptFile) );
>
> //        HashTree testTree = gui.getTreeModel().getTestPlan();
> //        convertSubTree(testTree);
>
>        testTree.add(testTree.getArray()[0], gui.getMainFrame());
>        engine.configure(testTree);
>    }
>
> i will need some help to implement this functions reusing the code that is
> already implemented.
>
> ok, tell what you think about it ...
> regards,
> Simon
>
>

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