Forum Discussion
ibridge
12 years agoOccasional Contributor
After a good night of sleep I found the solution this morning! Apparantly calling "context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionByName(databaseName).getConnectionString()" twice results in a nullpointer. So removing the first call solved the problem. My now working code looks like:
// Get first databaseName.
def databaseName = context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionAt(0).getName()
log.info "Found databaseName: " + databaseName
// Iterate all test steps in the test case and change connectionString for all ProJdbcRequestTestStep to the selected environment connectionString.
for(testStep in context.testCase.getTestStepList())
{
// Set the connectionString for all ProJdbcRequestTestStep and WsdlDataSourceTestStep
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()
log.info "Found connectionString: " + connectionString
testStep.setConnectionString(connectionString)
// Get connection password of active environment
def connectionPassword = context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionByName(databaseName).getPassword()
testStep.getDataSource().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()
log.info "Found connectionString: " + connectionString
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)
}
}
}