如何在SOAP UI中的Groovy脚本中使用单独的类调用sql请求的方法?

时间:2015-06-02 13:21:54

标签: testing groovy soapui

朋友们,你好。 我正在尝试在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方法并设置地址属性?

0 个答案:

没有答案