Use data retrieved from SQL queries

A normal use of database steps is fetching data from the database and using it at a later point in the script. Since the script retrieves the data during each test run, the data is up to date and relevant.

The following example illustrates a typical flow for a Web Service protocol script. A similar sequence can also be applied to other protocols.

Step
API function
Connect to database
lr_db_connect
Execute an SQL query
lr_db_executeSQLStatement
Retrieve and save the data
lr_db_getvalue to <param_name>
Web Service call
web_service_call with {<param_name>}
Disconnect from database
lr_db_disconnect

You can iterate through the results in two ways:

  • Save them to a simple parameter during each iteration

  • Use VuGen built-in iterations to scroll through the data

For more information, see the Function Reference.

In the following web service example, the vuser_init section connects to the database and performs a database query.

vuser_init()
{
lr_db_connect("StepName=myStep", 
    "ConnectionString=Initial Catalog=MyDB;Data Source=mylab.net;user id =sa ;password = 12345;" ,
    "ConnectionName=MyConnection",
    "ConnectionType=SQL",
    LAST);
lr_db_executeSQLStatement("StepName=MyStep", 
        "ConnectionName=MyConnection", 
        "SQLQuery=SELECT * FROM Addresses", 
        "DatasetName=ds1", 
        LAST);
    return 0;
}

At the end of your test, disconnect from the database in the vuser_end section.

vuser_end()
{
    lr_db_connect("StepName=myStep", 
        "ConnectionString=Initial Catalog=MyDB;Data Source=LAB1.devlab.net;user id =sa ;password = soarnd1314;" ,
        "ConnectionName=MyConnection",
        "ConnectionType=SQL",
        LAST);
    return 0;
}

In the Action section, you include the steps to repeat. Note the use of the Row argument. In the first call to the database, you specify the first row with Row=next. To retrieve another value in the same row, use current.

Action()
{
    lr_db_getvalue("StepName=MyStep", 
        "DatasetName=ds1", 
        "Column=Name", 
        "Row=next", 
        "OutParam=nameParam", 
        LAST);
    lr_db_getvalue("StepName=MyStep", 
        "DatasetName=ds1", 
        "Column=city", 
        "Row=current", 
        "OutParam=cityParam", 
        LAST);
/* Use the values that you retrieved from the database in your Web Service call */
    web_service_call( "StepName=EchoAddr_101",
        "SOAPMethod=SanityService|SanityServiceSoap|EchoAddr",
        "ResponseParam=response",
        "Service=SanityService",
        "ExpectedResponse=SoapResult",
        "Snapshot=t1227168459.inf",
        BEGIN_ARGUMENTS,
        "xml:addr="
            "<addr>"
                "<name>{nameParam}</name>"
                "<street></street>"
                "<city>{cityParam}</city>"
                "<state></state>"
                "<zip></zip>"
            "</addr>",
        END_ARGUMENTS,
        BEGIN_RESULT,
        END_RESULT,
        LAST);
return 0;
}

Back to top