It's all about the answers!

Ask a question

Problem with passing exec.vars & built-ins to testMain().

Anthony Howe (133) | asked Mar 27 '13, 1:51 p.m.
retagged Apr 01 '13, 2:16 p.m. by Lisa Caten (342913)
RQM 4.0.1

Appears that passing of exec.vars and built-in variables on the java command line using -var  argument that contain spaces are not properly parsed.

The following command line seen in the Adpater Console:

1:27:17 PM Executing RFT command /opt/IBM/SDP/jdk/jre/bin/java  -Drqm.mode=true -Drqm.task="/tmp/RQMRFTTask8982188282226514612.xml" -jar /opt/IBM/SDP/FunctionalTester/bin/rational_ft.jar -datastore /tmp/RQMRFTProjects/82bba6a1/MA_ATI -rt.log_format xml  -iterationcount -1 -rt.bring_up_logviewer false  -execmode rqm  -execmodeargs download  -playback CLI -var "RQM_TESTCASE_EXECUTIONRECORD_NAME=snert-info;RQM_PROJECT_NAME=NETMAIL SECURE 5.1;RQM_TESTCASE_EXECUTIONRECORD_WEBID=1890;;RQM_TESTCASE_WEBID=1173;RQM_TESTCASE_NAME=snert-info;RQM_PROJECT_ALIAS=MPlusGuardian;RQM_TESTSCRIPT_WEBID=1180;RQM_TESTSCRIPT_NAME=Command Line Interface;testdir=/tmp"

At the top of  testMain() I build a log string to report the arguments:

    public void testMain(Object[] args)
        StringBuilder s = new StringBuilder("args: ");
        for (int i = 0; i < args.length; i++) {
            s.append(": '");
            s.append((String) args[i]);


which is then reported in the RQM result output as:

args: {0: 'SECURE'},{1: '5.1;RQM_TESTCASE_EXECUTIONRECORD_WEBID=1890;;RQM_TESTCASE_WEBID=1173;RQM_TESTCASE_NAME=snert-info;RQM_PROJECT_ALIAS=MPlusGuardian;RQM_TESTSCRIPT_WEBID=1180;RQM_TESTSCRIPT_NAME=Command'},{2: 'Line'},{3: 'Interface;testdir=/tmp"'}

Its clear that the -var string is not properly splitting the string on the semi-colons into the Object[], but instead on the white space; probably would fail to handled a quoted literal semi-colon too.

One answer

permanent link
Vijay Patil (4813) | answered Apr 01 '13, 2:09 a.m.
Hi Anthony,

I think, the way you are parsing the execution variables inside "testMain" method is not correct. RFT suggest to do that like this -

        public void testMain(Object[] args) 
Iterator<IParameter> v = getVariablesManager().getAllInputParameters();
IParameter i =;
logInfo("Param: " +i.getName() + " ParamValue: " + i.getValue());


Please check, if this helps, otherwise you might have to contact RFT support for this, as we cannot do anything from RQM side here.


Anthony Howe commented Apr 01 '13, 9:41 a.m.

I have previously tried the method suggested and it fails to provide all the exec. vars and builts-ins when selected. This page...

Says variables are available through testMain() too. And they would work fine if the parsing of the -vars argument actually worked correctly.

Your answer

Register or to post your answer.