"Я хочу, чтобы все этапы тестирования Groovy утилит находились под одним тестом, и вызывать их снова и снова, когда это необходимо. Например, чтение файла тестовых данных и т. Д."
Итак, для меня это просто звучит так, как будто у вас есть библиотека многократно используемых функций и вы хотите иметь возможность вызывать их из любого теста, который вы можете запускать.
Я полагаю, вы можете сохранить их с другим тестом, а затем вызватьони из теста, который вы в настоящее время выполняете, но SoapUI поставляется с удобной функцией, заключающейся в том, что вы можете хранить ваши общие функции / библиотеки «вне» проекта SoapUI.
У меня есть много таких библиотек Groovy, и яхраните мой в папке bin / scripts SoapUI.Обычно я вызываю общие функции из шага проверки утверждения Script в тесте, который я выполняю.Например, у меня есть шаг теста типа getUserDetails.Я могу сделать все обычные утверждения против шага, такие как действительный код ответа, SLA и т. Д. Затем я могу использовать шаг теста проверки скрипта.Этот тип шага позволяет вам запускать фрагмент скрипта Groovy.Это нормально для определенных случаев, но вы не хотите вставлять что-то общее, так как вам нужно обновлять каждое утверждение Script, если что-то меняется.Но вы можете назвать «внешний» заводной скрипт.Кроме того, шаг «Утверждение сценария» - это просто метод, в который передаются журнал, контекст и обмен сообщениями, поэтому нет необходимости создавать свой собственный экземпляр.Просто передайте их во внешний скрипт Groovy ...
Итак, в качестве иллюстрации ...
ValidateUser.groovy (хранится в bin / scripts / groovyScripts / yourOrg / common)
package groovyScripts.yourOrg.common; // Package aligns with folder it's stored in.
Class ValidateUser {
def log = null;
def context = null;
def messageExchange = null;
// Constructor for the class
ValidateUser(logFromTestStep, contextFromTestStep, messageExchangeFromTestStep) {
// Assign log, context and messageExchange to the groovy class.
this.log = logFromTestStep;
this.context = contextFromTestStep;
this.messageExhange = messageExchangeFromTestStep;
}
def runNameCheck() {
// Performs some validation. You have access to the API response via
// this.messageExchange
log.info("Running the Name Check");
}
}
На интересующем этапе тестирования перейдите к утверждениям и создайте «Утверждение сценария». Здесь вы можете создать экземпляр своего внешнего класса и вызвать некоторый метод.Например,
def validateUserObject = new groovyScripts.yourOrg.common.ValidateUser(log, context, messageExchange);
validateUserObject.runNameCheck();
Что мне нравится в этих сценариях внешнего типа, так это то, что я могу использовать любой текстовый редактор, который мне нравится.Кроме того, когда я делаю изменение и нажимаю Сохранить, SoapUI отслеживает изменения в папке сценариев и перезагружает сценарий, поэтому нет необходимости перезапускать SoapUI.