Доброго времени суток товарищи!
Подскажите пожалуйста русским языком(ибо данный вопрос гуглил, ответы на других языках не смог понять).
Начал изучать robotframework на java:
создал проект
в src.test.java.com.selenium.test.testng.tests создал класс SimpleTest
в классе создал метод testFillGoogleForm(), который стартует браузер, переходит по ссылке
в src.test.java.com.selenium.test создал файл с расширением .robot
Как я понял в robotframework-е метод это keyword.
И сам вопрос:
как подключить мой класс?
как запустить robot? То есть через терминал pybot src/test/java/com/selenium/test/robotTest.robot?
Доброго!
Очень жаль, что с языком проблемы, т.к. у робота очень хорошее удобное официальное руководство. Потому что невозможно здесь всё пересказать. Скачайте и попытайтесь перевести нужные куски, хотя бы автоматически. Есть ли человеческие переводы, не в курсе.
Начнем с того, что TestNG не нужен. Робот фреймворк - это самостоятельный тестовый движок, который запускает тесты, описанные в файлах .robot. Java-классы можно к нему подключать или не подключать по желанию, можно вообще использовать готовые библиотеки.
Далее, pybot запускает тесты в среде python, и библиотеки шагов тогда должны быть на python. Для подключения Java-классов нужно исполнять в среде jython:
Первый вариант: нужен установленный jython (robotframework устанавливается тоже под jython, для этого нужно запустить pip install именно из комплекта jython), а запуск тестов - через jybot.
Второй вариант: запуск джарника со встроенным jython:
java -jar robotframework-2.9.jar mytests.robot
Свои библиотеки на Java можно подключать, импортируя их в файлах .robot с указанием пути к файлу:
Library /path/to/Example.class
Далее, публичные методы этого класса можно использовать как шаги. Трансляция метода camelCase() в шаг “Camel Case” должна поддерживаться.
Благодарю за подробный ответ! Все очень понятно! Но вопрос импорт в файл .robot все же остался.
Делаю вот таким образом:
Library src/test/java/com/selenium/test/testng/tests/SimpleTest
В ответ пишет что:
Importing test library ‘src/test/java/com/selenium/test/testng/tests/SimpleTest’ failed: ImportError: No module named src/test/java/com/selenium/test/testng/tests/SimpleTest
Traceback (most recent call last):
None
Благодарю за совет, поставил robotframework-maven-plugin, что-то пытается запустится, но пишет что:
[ ERROR ] Error in file ‘/home/user/robotFrameWork/PROJECT_JAVA/src/test/robotframework/acceptance/robotTest.robot’: Getting keyword names from library ‘com.selenium.test.testng.tests.SimpleTest’ failed: Calling dynamic method ‘getKeywordNames’ failed: IllegalStateException: Keyword pattern must be set before calling getKeywordNames.
Acceptance.robotTest
Test 1 | FAIL |
No keyword with name ‘testPage’ found.
С горе пополам проблему решил.
Резюмирование решения проблем:
Проблема - 1
–Не хочет брать путь к файлу, где указывал
Library com.selenium.test.testng.tests.SimpleTest
Причина была в плагине IntelliBot
Решено таким образом: поставил Robot Plugin(в этом плагине путь к файлу берется)
Проблема -2
–При попытке запустить была ошибка “Calling dynamic method ‘getKeywordNames’ failed: IllegalStateException:
Keyword pattern must be set before calling getKeywordNames.”
Суть не понял, но нашел этот эксепшн в классе AnnotationLibrary, а класс мой “SimpleTest” (уже забыл почему) наследовался от AnnotationLibrary.
Решено таким образом: убрал наследование от класса AnnotationLibrary
Всем огромное спасибо! Если будут замечании, или же рекомендации для новичка буду благодарен!
Кстати забыл, путь при импортирование нормально берется, а кейворд на idea все также отображается как “No Keyword found”, но рабочий
Пока причина не найдена