Параметризованные переменные для использования в скрипте Assertion Groovy


По существу, я использую 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 2

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