用于Assertion Groovy脚本的参数化变量

时间:2013-02-28 14:19:04

标签: sql groovy soapui assertions

基本上,我正在使用SoapUI进行一些冒烟测试,并创建了一个断言脚本,用于检查SQL数据库中是否有数据。

此测试必须在三个不同的环境中运行,每个环境都有各自的数据库凭据。

我想要做的是在测试类中创建一个自定义属性(或一组自定义属性),它包含三组数据库信息,以便测试人员可以简单地选择他们正在测试的环境,而不是必须更改硬编码的断言脚本。

代码:

import groovy.sql.Sql    
import oracle.jdbc.driver.OracleDriver

def con = Sql.newinstance('"server", "user",
                              "pass", "oracle.jdbc.driver.OracleDriver"')

def res = con.rows("select * from table1 where message_in = 'Bang'")

log.info(res[0])

con.close()

assert res[0] != null

1 个答案:

答案 0 :(得分:1)

首先应创建全局变量,为此请执行以下步骤:

  • 点击位于屏幕左侧的项目链接作为树状视图菜单。
  • 点击左下方的“自定义属性”标签
  • 点击+图标添加新属性。

在为数据库连接创建变量后,您可以在groovy脚本中访问它们,如下所示。

import groovy.sql.Sql    
import oracle.jdbc.driver.OracleDriver

def dbServer = context.expand( '${#Project#dbServer}' )
def dbUser = context.expand( '${#Project#dbUser}' )
def dbPass = context.expand( '${#Project#dbPass}' )


def con = Sql.newinstance('dbServer, dbUser,
                              dbPass, "oracle.jdbc.driver.OracleDriver"')

def res = con.rows("select * from table1 where message_in = 'Bang'")

log.info(res[0])

con.close()

assert res[0] != null