Как использовать глобальную переменную в другом тестовом примере? katalon

Каталон инструмент

Моя установка выглядит следующим образом: Глобальная переменная, определенная как "имя" с типом строки. Начальное значение '' (пусто) Testcase Registration, где имени будет присвоено случайное значение. Testcase Login, где loginname - это имя глобальной переменной. Коллекция тестовых наборов с этими тестовыми примерами и несколькими другими. Я пытаюсь создать новую тестовую учетную запись при каждом запуске набора тестовых наборов.

Проблема в том, что когда я запускаю набор тестов, тестовый сценарий входа в систему не пройден, потому что имя глобальной переменной, используемой для входа, пусто. Но в тестовом случае Registration имя является случайным значением.

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

Или проблема где-то еще?

4 ответа

Это странно, но вы должны добавить Thread.sleep(5000) в вашем коде. Каким-то образом требуется время, чтобы получить глобальную переменную, которая установлена ​​в другом тестовом примере.

Эх, простите за этот некропостинг, но....

... зачем использовать глобальные переменные и манипулировать ими во время выполнения?

Чего вы надеетесь достичь, тесно связывая имена (данные) с двумя совершенно разными тестовыми примерами (и вариантами использования)?

Не лучше ли использовать переменную тестового примера ?

А именно что-то вроде:

Ключевое слово com.yourProject.models.UserModel

      import com.github.javafaker.Faker

public class UserModel {
    private final String username;
    // etc...

    public UserModel() { }

    public UserModel(String username) { 
        this.username = username;
    }

    public String getUsername() { 
        return this.username;
    }

    //...etc...

    public static UserModel GenerateRandom() {
        Faker faker = new Faker();

        return new UserModel(faker.name().username());
    }
}

в вашем профиле:

  • нажмите «Добавить» в ручном режиме
  • назовите эту новую переменную
  • перейдите в режим Script и отредактируйте эту новую переменную, чтобы она имела значениеnew com.yourProject.models.UserModel("main_user")

и вVariables (Script mode)раздел вашего тестового примера входа в систему, будет выглядеть так:

  • нажмите «Добавить» на экране «Переменные».
  • назовите переменную тестового примераmodel
  • установите тип переменной «Глобальная переменная»
  • в столбце Значение по умолчанию выберитеuserModel

и в регистрационном контрольном примере просто нажмитеUserModel.GenerateRandom(), и, возможно, написать для этого обработчик, который будет всякий раз, когда уже существующий пользователь вводится для регистрации, регистрировать этого пользователя в электронной таблице и повторять попытку со случайной UserModel, пока мы не получим уникальную. У меня есть такие утилиты в моей кодовой базе. ЛМК, если вы хотите их. :)

Вы можете присвоить непустое значение GlobalVariable.name перед запуском тестового набора.

Затем, когда вы запустите тестовый пример, введите:

GlobalVariable.name = 'newValue'

в первой строке тестового скрипта.

Лучше и логичнее их разместить на вкладке профилей. Очевидно, что вы можете видеть все свои переменные в одной корзине, а не скрывать ее за множеством тестовых примеров.

Другие вопросы по тегам