Можно ли в soapui использовать переменные ПРЯМО из файла

Знаю, как загрузить проперти к проекту или тесткейсам и тд из файла, но тем не менее в тесткейсах всегда надо давать ссылку на тесткейсы/проект и тд (типа ${#project#my_var}).

Но может быть есть способ указывать ссылки на переменные прямо в файл?

А чем проперти не угодили? И не совсем понял что подразумевается под ссылками на переменные.

ну к примеру а что если я хочу менять конфигурацию и проперти не запуская soapui, просто в проепрти указывать путь до конректного файла с остальными пропертями и везде в других местах уже читать проперти прямо из файла, не импортируя данные файла никуда.

Эмм я все же мог не так понять, но используйте groovy и *.properties или *.ini файлы.
Как работать с ini в SoapUI можете прочитать например у меня в блоге. С *.properties еще проще, т.к. это нативный формат для java\groovy:

import com.eviware.soapui.support.GroovyUtils;

// ==== Prepare properties for reading ==== //
def groovyUtils = new GroovyUtils(context);
def projectDir = groovyUtils.projectPath;
def props = new Properties();
new File(projectDir, "application.properties").withInputStream {
	stream -> props.load(stream); 
}
...
def timeout = Integer.valueOf(props["response.time"])
1 лайк

Как вариант, попробуйте Data Source и Property Step.
Это если у Вас Pro версия.

Ага, смотрю на это сейчас… на самом деле думаю может внедрить datagen… property step не совсем понятно зачем придумали, можно же использовать custom property когда надо или нет?

Есть вопрос, я делаю запрос к базе, получаю строки, как теперь мне

  1. Вывести в проперти кол-во полученных строк.
  2. Сравнить json с набором элементов с полученными строками из БД (то есть понять, какие расхождения есть с эталоном, например по ИД). Надо ли предварительно сортировать элементы в JSON? Есть ли что-то готовое для сравнения?
  1. Если Data Source не обладает таким свойством напрямую - тогда скриптом.
  2. Вы хотите сравнить пачку записей в json с пачкой записей из БД? Я подозреваю, что готовых таких решений Вы не найдёте. Здесь - только скриптовый ассершн. Если сортировка в recordset, приходящим в json, отсутствует, то я вижу только 2 варианта:
    а). Попросить разработчиков её впилить (например, по ID по возрастанию), затем использовать такую же сортировку для запроса к БД и сравнивать запись в запись по очереди.
    б). Реализовать сравнение типа запись из БД - хоть 1 запись из json + кол-во записей в json и из БД должно быть одинаковым. Если все записи нашлись + кол-во записей совпало - всё отлично. Но 2-й вариант будет работать намного медленнее 1-го. Разница будет тем больше, чем больше кол-во записей. Я бы настоятельно рекомендовал 1-й вариант, к тому же реализовать его в коде совсем нетрудно.

У меня какой-то такой случай (если найду способ rows из sql result в json сконвентировать)

Example:
json1:[{id:5, color:red}, {id:8, color:blue}{id:9, color:blue}{id:2, color:green}]
json2:{[id:2, status:1], [id:8, status:2],[id:100, status:1]}

surplus json1 - json2 by id= [{id:5, color:red}, {id:9, color:blue}]
surplus json2 - json1 by id= {[id:100, status:1]}

Я бы делал обратным вариантом: json развернул в список объектов. Аналогично сделал бы для строк из БД.
Парсеров json более, чем дофига. Подключить данный java класс к groovy или js проблемы не представляет.