Forum Discussion

ReshmaSachdev's avatar
ReshmaSachdev
Contributor
12 years ago

Connection string in Data Source Step with DB Connection

With refeence to topic http://forum.soapui.org/viewtopic.php?f=2&t=23623
how to change the connection string in Data Source Step with DB Connection, where connection string is defined for different environments

1 Reply

  • Can any one suggest that following code will be appropariate to achieve by adding script to Event Handler in project - TestRunListener.beforeRun, for both JDBC and Data Source with Data Connection test steps?

    // Iterate all test steps in the test case and change connectionString for all ProJdbcRequestTestStep and WsdlDataSourceTestStep to the selected environment connectionString.

    for(testStep in context.testCase.getTestStepList())
    {
    // Set the connectionString for all ProJdbcRequestTestStep
    if(testStep instanceof com.eviware.soapui.impl.wsdl.teststeps.ProJdbcRequestTestStep)
    {
    // Get databaseName
    def databaseName = testStep.getJdbcRequestTestStepConfig().getDbConnectionName()
    // Get connectionString of active environment
    def connectionString = context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionByName(databaseName).getConnectionString()
    testStep.setConnectionString(connectionString)
    // Get connection password of active environment
    def connectionPassword = context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionByName(databaseName).getPassword()
    testStep.setPassword(connectionPassword)
    }
    else if(testStep instanceof com.eviware.soapui.impl.wsdl.teststeps.WsdlDataSourceTestStep)
    {
    if(testStep.getDataSource() instanceof com.eviware.soapui.impl.wsdl.teststeps.datasource.DBDataSource)
    {
    // Get databaseName
    def databaseName = testStep.getDataSource().getDbConnectionName()
    // Get connectionString of active environment
    def connectionString = context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionByName(databaseName).getConnectionString()
    testStep.getDataSource().setConnectionString(connectionString)
    // Get connection password of active environment
    def connectionPassword = context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionByName(databaseName).getPassword()
    testStep.getDataSource().setPassword(connectionPassword)
    }
    }
    }