朋友们,你好。 我正在尝试在SOAP UI groovy脚本中使用面向对象方法的元素。 我阅读了关于"如何编写可重用脚本的手册"这里http://forum.loadui.org/viewtopic.php?f=1&t=15744 我试图用一个方法编写一个单独的类,该方法从数据库获取数据并设置地址属性(地址)。 我的问题是我收到错误消息
groovy.lang.MissingPropertyException:没有这样的属性:sql1 for class 线上的实用工具错误:138
运行" main" Groovy脚本。
"主" Groovy Script看起来像:
// get a reference to the library TestSuite
library = testRunner.testCase.testSuite.project.testSuites["Library"]
// find the module within the library
module = library.testCases["module-name"].testSteps["Utils"]
// initialise the library; which places an instance of Example in the context
module.run(testRunner, context)
// get the instance of example from the context.
def utils = context.utils
// run the method, with parameter
log.info "utils.setAddress() = " + utils.setAddress("LivingPlace");
setAddress方法在类Utils中确定,如下所示:
import groovy.sql.Sql;
class Utils
{
def log
def context
def testRunner
// Class constructor with same case as Class name
def Utils(logIn, contextIn, testRunnerIn)
{
this.log = logIn
this.context = contextIn
this.testRunner = testRunnerIn
}
def setAddress (addressType)
{
log.info testRunner;
log.info context;
log.info "Call the DB" ;
com.eviware.soapui.support.GroovyUtils.registerJdbcDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");
sql1 = Sql.newInstance("jdbc:sqlserver://SRV1:1433; databaseName=DB;", "user", "123", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
sql1.eachRow('select top 1 '+
'Country '+
'from Address')
{ row ->
testRunner.testCase.testSteps['Address'].setPropertyValue("'country", "$row.Country");
}
return addressType //just for test
}
}
context.setProperty ("utils", new Utils(log, context, testRunner) )
log.info "Library Context:"+context;
如果我删除与sql相关的所有内容,它可以正常工作。如何在没有前面描述的错误的情况下调用setAddress方法并设置地址属性?