Как создать структурированное автоматическое тестирование с помощью selenium (junit или testng)?Какова ваша наилучшая практика для этого?
-
19-09-2019 - |
Вопрос
Я написал тесты, которые используют selenium для функционального тестирования.Я использую Java.Я хотел бы иметь возможность создавать структуру между тестами.Можно ли это сделать с помощью JUnit или TestNG?
Хотел бы иметь возможность создать тестовую структуру, которая будет выдавать отчет, подобный этому:
Top test FAIL
- Module1 test PASS
-- Module1Class1 test PASS
-- Module1Class2 test PASS
--- Module1Class3Method1 test PASS
--- Module1Class3Method2 test PASS
- Module2 test FAIL
-- Module2Class1 test FAIL
--- Module2Class1Method1 test PASS
--- Module2Class1Method2 test FAIL
--- Module2Class1Method3 test PASS
Решение 5
Я только что нашел решение для этого вопроса, поэтому размещаю здесь ссылку, чтобы другие могли извлечь из этого пользу.beust.com Хотя я этого еще не пробовал.
Обновить: Попробовав это, я могу получить следующие результаты:
Module1.Class3.Method1 PASS
Module1.Class3.Method2 PASS
Module2.Class1.Method1 PASS
Module2.Class1.Method2 FAIL
Module2.Class1.Method3 PASS
Имя метода сбоя - "Method2", он находится в классе "Class1" и является пакетом "Module2".
Я использовал все стандартные возможности TestNG (их много) + я перезаписал TestListenerAdapter, используя методы ITestResult:getName() и getTestClass().getName()
На самом деле это не та структура, которую я искал, но небольшой синтаксический анализ может подсказать мне, где произошел сбой.И в качестве плюса мне не нужно называть методы с именем класса и пакета в нем.
Другие советы
Лучший шаблон, который я видел для организации кода, лежащего в основе тестов selenium, - это шаблон объекта страницы:
http://blog.m.artins.net/acceptance-tests-with-jbehave-selenium-page-objects/
Вот вспомогательная библиотека Java:
Вы не можете, потому что это не тот формат, в котором Selenium интерпретирует тесты.Selenium поддерживает несколько различных языковых синтаксисов, самыми простыми из которых являются строки таблиц JS и HTML.Вы могли бы использовать функцию записи Selenium IDE из Firefox, если вы не хотите вручную писать свои тесты в соответствии с определенным синтаксисом языка.
рассматривали ли вы возможность использования Selenium Remote Control?http://seleniumhq.org/projects/remote-control/
Я бы рекомендовал ознакомиться с XML-отчетами JUnit или TestNG.Вы должны быть в состоянии преобразовать их с помощью небольшого количества XSLT, чтобы предоставить новый HTML-отчет в требуемом вами формате.
В TestNG вы можете определить наборы через файл конфигурации (testng.xml), который должен соответствовать вашим потребностям.Вы могли бы структурировать его так, чтобы у него была тестовая группа для каждого модуля.Сбой в тестовой группе приводит к тому, что весь тест считается неудачным.Но я думаю, вы также могли бы сделать это в JUnit, с которым я не слишком знаком.
Что хорошо в TestNG, так это то, что вы можете определять зависимости.Они будут применять определенный логический порядок выполнения тестов и пропускать тесты, которые зависят от неудачных тестов, вместо того, чтобы позволить им также завершиться неудачей.Это намного упрощает анализ, а тесты заканчиваются раньше, потому что все те тесты, которые потенциально обречены на неудачу, будут оставлены в стороне.
Но, как я уже говорил ранее, я думаю, вы можете сделать это и в JUnit.Это скорее дело вкуса.И если вы решите иначе, преобразование из JUnit в TestNG или наоборот не составит большого труда.
Я не совсем уверен, что я прав здесь .. но я думаю, что это может вам помочь:http://www.jamesnetherton.com/blog/2007/07/02/Creating-a-Selenium-test-suite/
Вы можете группировать свои тесты с его помощью очень простым структурированным способом.