браузер тяну из .xml
<test name="FunctionalTestsFirefox" >
<parameter name="browser" value="firefox"></parameter>
<classes>
................
<classes>
</test>-->
<test name="FunctionalTestsChrome" >
<parameter name="browser" value="chrome"></parameter>
<classes>
................
<classes>
</test>-->
В данный момент, что бы передать мне браузер, приходится оставлять незакоменченный тот кусок кода, с браузером который мне нужен...
Мне кажется это как то костыльно. Можно ли как то отдельно создать .xml в котором я буду указывать название браузера и возможно ещё какие то параметры типо логин, пароль и т.д...? А то коментить\разкоменчивать строки с ненужным запуском браузеров, уже запарился)
может можно как то реализовать типо такого .xml??
browser=nameOfBrowser
login=login
password=password
и т.д.
Хочу что бы перед запуском моих тестов, тесты знали, на каком браузере я хочу прогнать…То есть, я прописываю в одном месте (возможно это xml файл) параметры, в которых указываю браузер, и после чего дата провайдер обращается к этому .xml (где я указал на каком браузере нужен запуск), и передается этот весь конфиг в BeforeMethod, что бы тесты знали, на чем они будут крутиться…Скорее будет правильный ответ такой: “Возможность гибкого переключения браузера для последовательного запуска тестов”…Может это делается не через дата провайдер, может быть я ошибаюсь, хочу услышать все мнения по этому поводу, как лучше это организовать???
А можно поподробнее?) куда необходимо прописать System.getProperty(“browser”)? А без запуска флага как то можно по другому сделать…что бы к примеру передал я как параметр название браузера в xml?
Вопрос немного другой) Можно ли как то в @Parameters(“browser”) указать конкретное value которое мне нужно?..а то у меня в .xml хранятся несколько сьютов с тестами (для хрома, оперы, ие, мозила)…сейчас мне приходится закоменчивать ненужные сьюты в .xml файле…Вопрос, можно как то конкретно указать value в этом участке кода…Вот нужно мне прогнать щас на фоксе, я просто прописал в бефор методе “firefox” и погнал сьют с ним (не затрагивая при этом другие сьюты)
Это равносильно разделению suites на отдельные xml по браузерам. Только в вашем случае все сводится к изобретению велосипедов. А с раздельными xml вы хотя бы сможете параметризовать сам suite, который следует запускать, через maven / gradle.
Но опять-таки, в случае с последовательным запуском тестов оба варианта - бессмысленны, ибо зачем параметризовать браузер посредством xml для совершенно одинаковых наборов? Он явно напрашивается во внешний параметр.
Другое дело, если бы вы запускали тесты в параллели в разных браузерах. Тогда еще можно было задумываться об xml параметризации.
Да оставьте вы уже в покое этот несчастный BeforeMethod. Выше уже приведен рабочий вариант через system props. Используйте, и не забивайте себе голову велосипедами.
При разделении по отдельным xml:
Когда придете к теме масштабирования, тогда можно будет говорить о нюансах работы
с xml.
Возможно автор имел ввиду возможность хранения общих данных для теста, таких как user credentials, environments и так далее.
В “кругу” автоматизаторов это называется проперти файлы.
Для этого считаете перед тестами проперти файл в java объект например (есть множество вариантов реализации) и дольше на стадии конфигурации (beforeMethod, beforeSuite …) получаете из этого объекта нужные значения
Я бы вынес браузер в командную строку. ИМХО при использовании CI такой подход гибче, чем жонглирование xml-ками.
Получим что-то типа
javac myTestSuite.java -browser=FF
Из минусов такого подхода могу отметить необходимость иметь метод, который читает параметры, в каждом элементе, который необходимо запускать автономно (обычно это сьюты). Если есть необходимость запускать каждый тест индивидуально - данный подход может быть неоптимален.