Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

JAVA: использование полученной ссылки в другом методе

execution
java
webdriver
Теги: #<Tag:0x00007f7b640b2660> #<Tag:0x00007f7b640b24f8> #<Tag:0x00007f7b640b2390>

(Eazy E) #1

Может кто-то подскажет, как можно использовать полученную ссылку из одного метода в другом? (да, я нуб в этом деле)
Например:
Тест1 - создал страницу Job (тут же получил ее ссылку (getCurrentUrl))
Тест2 - проверил, что страница Job находится (можно найти) на стр. поиска
Тест3 - теперь нужно удалить страницу, но я не хочу руками прописывать ссылку до страницы Job, а хочу использовать ту ссылку, которую я получил на шаге создания Job (Тест1)


(Михаил Братухин) #2

Связывать тесты не очень хорошо.
Но если очень хочется, то ничего сложного в этом нет. Чтобы другой тест мог что-то получить из первого, нужно, чтобы первый это положил куда-то куда второй может дотянуться во время запуска. Проще всего статические поля, т.к. они инициируются один раз при загрузке класса, а не каждый раз при создании объекта. Либо выкинуть всё во внешнее хранилище: файлик, база и т.п.


(Alexandr D.) #3

Самый нормальный вариант - объединить все эти 3 теста в один Е2Е и сделать его независимым.


(Dmitry Astanin) #4

В рамках одного класса: перед тестом private static String url

Если из разных классов дергать то public static String url

Если TestNG юзаешь, то у него есть ITestContext, туда можно сетать и оттуда гетать атрибуты. В JUnit’e наверное тоже такое есть.


(Eazy E) #5

“Связывать тесты не очень хорошо.”
Ну, мне кровь из носу, а нужно проверить, что после создания. новгй страницы, её можно найти на поиске. В моем случае это работает так: 1 Тест - создание страницы (это отдельный тест). 2 Тест - поиск созданной страницы (этот тест скипнется, если регистрация не прошла) ну и т.д.
А так, я пока новичок (очень сильно) и пока разбираюсь :slight_smile:
Спасибо за совет :slight_smile:


(Eazy E) #6

Попробую. Спасибо


(Vatslau) #7

если сущность типизирована и нужна например для дебага или ещё для чего после рантайма
можно просто сохранять в темп фолдере джейсон/текст

и потом читать в любых тестах- методах
1 сьют генерит какую-то тест дату
2 сьют или другая программа использует эти данные

И не нужны бубны с приватами/пабликами/войдами
потери на IO операциях не велики
Минус - нужно контролить пути к папкам и их создания, добавляется неймспейс файлов


(Bohdan Kuso) #8

Проще всего, как писали выше, сделать переменную (private или public зависит от расположения тестовых методов), далее сделать в первом тесте assertNotNull на получаемые данные, и присвоить полученный урл этой переменной, после чего (если это TestNG) дописать параметр второго теста вида @Test(dependsOnMethd = “метод 1 теста”). Таким образом, второй тест проигнорируется, если первый не получил значение урла, и выполнится, когда урл задан. То же самое для Теста 3.