Sai
Sai

Reputation: 1

[ReadyAPI]: Connect to Database in Groovy script

Need help: Upgraded my ReadyAPI to 2.3 version from 2.0. I have groovy script to connect to Databases defined at project level. It is throwing following error as below after upgrade.

Error:

Caused by: groovy.lang.MissingMethodException: No signature of method: com.eviware.soapui.impl.wsdl.support.connections.DefaultDatabaseConnectionContainer.getDatabaseConnectionByName() is applicable for argument types: (java.lang.String) values: [MyDB] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58) at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:49) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at Script3.run(Script3.groovy:11) at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:98) at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SoapUIProGroovyScriptEngineFactory.java:82) at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.runScript(WsdlTestCase.java:984) at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.runSetupScript(WsdlTestCase.java:989) ... 9 more

My Script:

import groovy.sql.Sql
com.eviware.soapui.support.GroovyUtils.registerJdbcDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");
def rbConObj = context.testCase.testSuite.project.databaseConnectionContainer.getDatabaseConnectionByName("MyDB");
def rbconstring = rbConObj.getConnectionString();
def sql = Sql.newInstance(rbconstring);
sql.executeUpdate("UPDATE Table SET Column = 2 Where ID = 1505")

Upvotes: 0

Views: 1660

Answers (1)

craigcaulfield
craigcaulfield

Reputation: 3538

A comment in the SmartBear support forums says DatabaseConnectionContainer has been deprecated in version 2.2, but I don't think that's right. The method getDatabaseConnectionByName has been refactored to getResourceByName. That will work better.

Upvotes: 2

Related Questions