2015-04-22 6 views
0

Мы проводим большое количество тестов с помощью java webdriver каждый день. Мы используем TestNG, и мы используем bat-файлы для выполнения XML-тестов TestNG, используя класс, скомпилированный Eclipse. Мне интересно, хотя, если есть лучший способ сделать это. Поскольку мы ежедневно запускаем сотни (тысячи?) Тестовых примеров, нам приходится прибегать к созданию тестовых XML-файлов, которые выполняют целые пакеты, иначе нам пришлось бы вручную создавать xml для каждого теста, и это нецелесообразно.Лучший способ запустить тесты селен-webdriver?

Одна из проблем с выполнением таких крупных тестов, содержащих сотни классов, заключается в том, что если есть одна серьезная проблема (например, срыв или зависание webdriver), весь тест не будет выполняться. Кроме того, у нас есть слушатель, который загружается на сервер в конце теста, поэтому мы должны ждать несколько часов, чтобы все результаты были загружены сразу (что-то большее в «реальном времени» было бы лучше). Другая проблема заключается в том, что перезагрузка виртуальных машин по какой-либо причине, все «прогресс» теряется, и нам нужно будет запускать тесты с самого начала.

Я видел Ant сборки, упомянутые вокруг сайта testng, но я не уверен, что преимущества муравья будут выше, просто используя файлы bat для выполнения XML. Может ли кто-нибудь пролить свет на это? Или предложить любые решения для выполнения большого количества тестов с чем-то более элегантным, чем файлы bat?

Спасибо!

+0

Как вы компилируете свои классы? – vins

+0

Я добавил комментарий к этому оригиналу. Мы просто используем класс, который автоматически компилируется Eclipse. – Andrio

+0

Как вы перемещаете классы/данные и т. Д. На VM? вручную? – vins

ответ

1

Вместо использования Eclipse для сборки (или Ant) я бы рекомендовал использовать Gradle (http://gradle.org/). Она имеет большую поддержку для TestNG, и вы можете запустить тест только с помощью команды, как gradlew clean test (вместо биты файлов)

Вместо создание XML вручную и т.д. Вы можете использовать тестовые группы в @Test аннотации, так что вы можете выбрать тесты на основе групп не только на упаковках. Также вы можете передать имена групп через Gradle - что-то вроде gradlew clean build -PtestGroup=smoke,unit (а затем передать его в TestNG в build.gradle файле http://gradle.org/docs/current/groovydoc/org/gradle/api/tasks/testing/testng/TestNGOptions.html)

Для более «реального времени» результат вы можете загрузить свои результаты после каждого метода тестирования/конфигурации с использованием org.testng.TestListenerAdapter (зависит от ваша структура обработки результатов)

Если вы хотите более быстрое выполнение тестов Selenium, то в основном один вариант (если вы уже оптимизировали обработку DOM и т. д.), и это параллелизм - 2 или более виртуальных машины и раздельные тесты на основе групп/пакетов и т. д. или с более сложным/программным методом.

Смежные вопросы