Как создать глобальную переменную, определенную в тестовых слушателях с типом?

Я использую Katalon (Simplify API, Web, Mobile Automation Tests), и мне нужно создать глобальную переменную с именем objectA в тестовом слушателе.

Однако эта переменная не String, а Object, поэтому я не могу использовать функцию GlobalVariable.

Есть ли способ определить и сохранить этот объект из тестового прослушивателя, чтобы использовать его в любом месте и в любое время в моем проекте?

Заранее спасибо, С уважением,

Возможное решение:

def map = ['ObjectA' : new ObjectA()]
GlobalVariable.Gbl_Map = map
...
def map2 = (Map) GlobalVariable.Gbl_Map
def res = map2['ObjectA'].method()

person Royce    schedule 20.08.2019    source источник
comment
Java на самом деле не поддерживает глобальные переменные.   -  person Stultuske    schedule 20.08.2019
comment
Действительно, но я использую Katalon, основанный на Java, поэтому я добавил тег Java. Я упомяну об этом в своем вопросе.   -  person Royce    schedule 20.08.2019
comment
Я никогда не использовал Katalon, так что, возможно, я ошибаюсь, но у меня нет впечатления, что глобальные переменные ограничены только строкой: docs.katalon.com/katalon-studio/docs/execution-profile-v54.html   -  person Stultuske    schedule 20.08.2019
comment
Перед запуском теста вам необходимо создать глобальную переменную. Присвойте ему начальное значение (подойдет пустая строка). Затем просто обновите его значение, запустив тест с тестовым слушателем.   -  person Mate Mrše    schedule 20.08.2019
comment
На самом деле существует несколько типов: String, Number, Boolean, Null, Test Data Value, Test Object, Range, List и Map. Но не возражаю :(   -  person Royce    schedule 20.08.2019
comment
вы можете поместить в карту или массив что угодно   -  person daggett    schedule 20.08.2019
comment
@ MateMrše четыре спасибо за ваш ответ. Если я это сделаю, я не смогу сделать что-то вроде: GlobalVariable.objectA.method().   -  person Royce    schedule 20.08.2019
comment
с картой, я думаю, вы могли бы сделать что-то вроде: GlobalVariable.myMap.objectA = new ObjectA(), а затем GlobalVariable.myMap.objectA.method()   -  person daggett    schedule 20.08.2019
comment
@daggett действительно спасибо. Однако все та же проблема. Мне нужно определить тип значения, а тип объекта недоступен.   -  person Royce    schedule 20.08.2019
comment
Спасибо всем. Я обновил свой вопрос, указав возможное решение.   -  person Royce    schedule 20.08.2019
comment
другой подход, который работает для меня: объявить глобальную переменную с именем objectA с типом Null (значение null), переключить профиль на Script view (вкладка внизу) и изменить значение переменной objectA на то, что вам нужно: new Date() например   -  person daggett    schedule 20.08.2019
comment
@daggett очень хороший материал!   -  person Royce    schedule 21.08.2019


Ответы (1)


В Katalon вы можете использовать их встроенную функцию под названием " профиль ":

Пример:

if (diffInMinutes < GlobalVariable.News_updated_time ) {
         println('system is getting updated')} else {
         CustomKeywords.'errorMessage.logFailed.markStepFailed'('from 1 h,system was not updated');}  

Снимок экрана:  глобальная переменная

person lahimadhe    schedule 21.08.2019