Как определить константы, которые можно использовать в нескольких файлах скриптов в Groovy? - PullRequest
0 голосов
/ 29 июня 2019

Я пишу тесты в среде JMeter.Благодаря использованию Groovy и написанию кода многократного использования мы получили несколько файлов сценариев и один файл, в котором определены константы.И вот мой вопрос, как можно получить доступ к константам, определенным в файле из файлов скриптов?

Почему это важно для меня?В логике тестовых случаев есть точки принятия решений, и некоторые данные помещаются в глобальную переменную Jmeter.props, где ключ является строкой.Я хотел бы хранить эти ключи в постоянном классе, чтобы избежать опечаток в будущем.

Я хотел бы добиться чего-то похожего:

Groovy file 1

class Constants {
    public final static String PREFIX = 'prefix'
}

Groovy файл 2

void methodName() {

    printlin("===> " + Constants.PREFIX)
}

methodName()
===> prefix

Первая попытка была похожа на:

Groovy файл 1

class Constants {
    public final static String PREFIX = "prefix"
}

Groovy файл 2

void methodName() {

    printlin("===> " + Constants.PREFIX)
}

methodName()

что привело к сообщению об ошибке, в котором компилятор искал свойство Constants для methodName.ScriptWh независимо от класса. В этом случае файлы были в одном пакете.

Вторая попытка была связана с @Fields, но я не мог понятьКак можно распределить значения констант так, как вы определяете их только в одном месте.

Забавно было то, что я включил одну из этих констант, как показано ниже, и это сработало ...

void methodName() {

    printLn("===> " + Inspector.CLASS_CLASS_IDX)
}

methodName()

Если я правильно помню, в Java вы можете решить эту проблему следующим образом:

public class Constants {
    public static final String PREFIX = "prefix";
}

public class AnotherClass {
    public void doIt() { System.out.println(Constants.PREFIX); }
}

И в результате получается "префикс" (извините, мои знания Java все еще довольно ржавые)

Ответы [ 2 ]

0 голосов
/ 30 июня 2019

Следуя совету @ dagett33 , я добавил сгенерированный jar в каталог lib jmeter, как я описал в моем предыдущем посте , и он работает нормально.

0 голосов
/ 29 июня 2019

Все ваши constant классы (скрипты) должны быть видны, т. Е. Присутствовать в пути к классам сред выполнения для всех других скриптов. В противном случае вы получите NoSuch*Exception с.

Я не эксперт по классным диким сценариям без классов, но вы можете попробовать упаковать ваши константы / -es в файл .jar и использовать аннотацию @Grab в других сценариях для ссылки на первый .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...