selenium grid
#1
Отправлено 18 августа 2011 - 10:23
Сейчас запуск тестов организовал через xml файлы. Нужно ли мне будет изменить что-нибудь, для того что бы это все работало в gride?
#2
Отправлено 18 августа 2011 - 10:49
#3
Отправлено 18 августа 2011 - 11:02
Вопрос остается открытым. Как нужно организовывать build.xml?
сейчас сделал по образцу с сайта grid'a, вроде все запускается. Что нужно прописать, что бы мои тесты отрабатывали. Пишу вот так:
<target name="test" description="Run Selenium tests one by one"> <java classpathref="demo.classpath" classname="org.testng.TestNG" failonerror="true"> <sysproperty key="java.security.policy" file="${basedir}/libs/testng.policy"/> <sysproperty key="webSite" value="${webSite}" /> <sysproperty key="seleniumHost" value="${seleniumHost}" /> <sysproperty key="seleniumPort" value="${seleniumPort}" /> <sysproperty key="browser" value="${browser}" /> <arg value="-suitename" /> <arg value="Selenium Grid Demo In Sequence" /> <arg value="-d" /> <arg value="${basedir}/target/reports" /> <arg value="-testclass"/> <arg value="Registration.RegistrationEmployer" /> <arg value="XMLTest/Registration/Run_RegistrationEmployer.xml" /> </java> </target>
Но постоянно пишется:
Cannot load class from file: Registration.RegistrationEmployer
Уже по всякому пробовал прописывать путь. Подскажить плз
#4
Отправлено 18 августа 2011 - 11:17
Что-то не то с классом теста, не найден или битый... или стоит прописать правильный путь, со всеми пакетами.Cannot load class from file: Registration.RegistrationEmployer
#5
Отправлено 18 августа 2011 - 11:41
Т.е. как я понимаю у всех будет начинаться с <target name="...
#6
Отправлено 18 августа 2011 - 15:02
Да, у TestNG жутко кривая архитектура и совершенно неудобоваримый код, но при этом он работает, и разработчик не тормозит, быстро реагирует на сообщения об ошибках.
Правда, группами в TestNG я тоже не рекомендую активно пользоваться :)
Для запуска Ant-ом лучше использовать специальный task:
<taskdef resource="testngtasks" classpath="${TESTNG_HOME}/lib/testng.jar" /> <target name="run" depends="build" description="Run tests"> <testng> <classpath refid="MyTests.classpath" /> <xmlfileset dir="." includes="mytests.xml" /> </testng> </target>
Параметры при этом можно определить в mytests.xml и передавать не через системные свойства, а как параметры метода инициализации, помеченного, например, аннотацией @BeforeTest (но если хочется -- можно и через системные свойства, конечно).
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#7
Отправлено 18 августа 2011 - 15:29
Эх, испугал бы кто меня в своё время, сейчас всё было бы совсем иначе :)Виталий, не пугай людей :)
#8
Отправлено 18 августа 2011 - 15:36
Если бы это было действительно серьёзной проблемой для вас -- вы либо уже перешли бы на другой фреймворк, либо переписали TestNG (мы в своё время это и сделали :))Эх, испугал бы кто меня в своё время, сейчас всё было бы совсем иначе :)
Виталий, не пугай людей :)
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#9
Отправлено 18 августа 2011 - 16:31
#10
Отправлено 19 августа 2011 - 06:56
У меня сейчас так организовано. Есть build.xml, common-build.xml, testng.xml и xml через который запускаю тесты.
Так вот в build и common-build у меня собраны правила по запуску хаба, локального сервера, компиляции и т.д. в build я написал таргет по запуску своего теста:
<target name="mytest" depends="compile" description="test"> <java classpathref="runtime.classpath" classname="org.testng.TestNG" failonerror="true"> <sysproperty key="java.security.policy" file="/lib/testng.policy"/> <arg value="-d" /> <arg value="${basedir}/target/reports" /> <arg value="-suitename" /> <arg value="suite1" /> <arg value="testng.xml"/> </java> </target>
в файле testng.xml у меня:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite1" parallel="methods" thread-count="2"> <test name="Testcase20" > <classes> <class name="TestFiles.employerLogin"/> </classes> </test> </suite>
Когда запускаю, ругается что
[Parser] Running: [java] path/testng.xml [java] [java] [java] =============================================== [java] Suite1 [java] Total tests run: 0, Failures: 0, Skips: 0 java.lang.NoClassDefFoundError: junit/framework/TestCase at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) ...
Почему он хочет запустить через junit?
Или я не по тому пути пошел?
#11
Отправлено 19 августа 2011 - 19:27
А, это совсем просто -- добавьте JUnit в runtime.classpath -- для запуска он не нужен, но Selenium 1 от него зависит, поэтому в пути должен быть.Когда запускаю, ругается что
[Parser] Running: [java] path/testng.xml [java] [java] [java] =============================================== [java] Suite1 [java] Total tests run: 0, Failures: 0, Skips: 0 java.lang.NoClassDefFoundError: junit/framework/TestCase at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) ...
Почему он хочет запустить через junit?
Или я не по тому пути пошел?
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных