0

需要帮助:将我的 ReadyAPI 从 2.0 升级到 2.3 版本。我有 groovy 脚本来连接到在项目级别定义的数据库。升级后抛出如下错误。

错误:

引起:groovy.lang.MissingMethodException:没有方法签名:com.eviware.soapui.impl.wsdl.support.connections.DefaultDatabaseConnectionContainer.getDatabaseConnectionByName() 适用于参数类型:(java.lang.String) 值:[MyDB ] 在 org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:49) 在 org.codehaus.groovy.runtime 的 org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)。 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.call(AbstractCallSite.java:113) java:125) 在 com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine 的 Script3.run(Script3.groovy:11)。在 com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SoapUIProGroovyScriptEngineFactory.java:82) 在 com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.runScript( WsdlTestCase.java:984) 在 com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.runSetupScript(WsdlTestCase.java:989) ... 还有 9 个

我的脚本:

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")
4

1 回答 1

1

SmartBear 支持论坛中的一条评论说DatabaseConnectionContainer在 2.2 版中已弃用,但我认为这是不对的。该方法getDatabaseConnectionByName已被重构为getResourceByName. 这样会更好。

于 2018-03-22T21:25:38.443 回答