SOAP UI Проблемы с удалением пользовательского свойства

В настоящее время я пытаюсь "очистить" пользовательские свойства от тестового примера пользовательского интерфейса SOAP, используя скрипт groovy. Из этого другого поста я пытался сделать это, но я столкнулся с проблемой: я не могу получить доступ к removeProperty метод.

Я получаю свои данные:

data = context.testCase.testSuite.getTestCaseByName("Test multi TT");

и из него я могу использовать только removePropertyChangeListener метод.

Я пытался использовать data.getPropertyAt() функция, чтобы получить подходящий объект, но он не возвращает правильный класс данных.

Как я могу получить параметр PropertyChangeListener из своего пользовательского свойства, которое я мог бы использовать для его программного удаления? Все посты, через которые я прошел, дают ответы removeProperty и я не могу найти ничего, что упоминает removePropertyChangeListener

любая помощь приветствуется

РЕДАКТИРОВАТЬ: на основе обсуждения в чате с OP, OP хочет удалить существующие свойства и добавить свойства из внешнего файла для пользовательских свойств уровня тестового набора.

2 ответа

Решение

Ниже Setup Script для мыльного теста. И это делает следующее (после обсуждения с OP в чате):

  1. Удалить существующие свойства
  2. Добавьте свойства из файла в пользовательские свойства уровня тестового набора.

Сценарий установки:

//Change external properties file path as needed
def filename = 'C:/Users/apps/Documents/test.properties'
def properties = new Properties()
def propertiesFile = new File(flename)
assert propertiesFile.exists(), "$filename does not exists"
propertiesFile.withInputStream { properties.load(it) }
//Remove properties
testCase.propertyNames.collect { testCase.removeProperty(it) }

//load the properties of external file
properties.collect { k, v -> testCase.setPropertyValue(k, v) }

Вот решение без внешнего файла. Цель состоит в том, чтобы удалить только новые свойства, которые я создал для целей testCase, в сценарии разрыва:

import java.util.regex.Pattern

data = context.testCase.testSuite.getTestCaseByName("myTestCase");
log.info " ********************** old props ***********************"
String[] customProps = new String[data.getPropertyCount()];
customProps = data.getPropertyNames();

Pattern myRegex = ~/maProp_/  // I name my new properties with the same pattern and an index

for (propertyName in customProps){
    log.info "info = " + propertyName
    myMatcher = propertyName =~ /$myRegex/
    if (myMatcher.count != 0){
        match = myMatcher[0] == 'maProp_'
        //log.info "match ? " + match // to check only my maProp_xx properties are matching

        context.getTestCase().removeProperty(propertyName)
    }
}


// verification
newProps = data.getPropertyNames();

log.info " ********************** new props ***********************"
for (i in newProps){
     log.info "info = " +i
}
Другие вопросы по тегам