Как использовать глобальную переменную в другом тестовом примере? 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'
в первой строке тестового скрипта.
Лучше и логичнее их разместить на вкладке профилей. Очевидно, что вы можете видеть все свои переменные в одной корзине, а не скрывать ее за множеством тестовых примеров.