Перейти к содержимому

Фотография

selenium grid


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 BoBuS

BoBuS

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • Город:Москва


Отправлено 18 августа 2011 - 10:23

Есть вопрос. Использую TestNG. Хочу запускать тесты на удаленнной машине.
Сейчас запуск тестов организовал через xml файлы. Нужно ли мне будет изменить что-нибудь, для того что бы это все работало в gride?
  • 0

#2 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 августа 2011 - 10:49

Grid и TestNG никак не связаны, но 10 раз подумайте перед решением использовать TestNG, он сам по себе очень кривой.
  • 0

#3 BoBuS

BoBuS

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • Город:Москва


Отправлено 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

Уже по всякому пробовал прописывать путь. Подскажить плз
  • 0

#4 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 августа 2011 - 11:17

Кривость заключается во всём, иначе и не знаю как сказать, можете заглянуть в исходники.

Cannot load class from file: Registration.RegistrationEmployer

Что-то не то с классом теста, не найден или битый... или стоит прописать правильный путь, со всеми пакетами.
  • 0

#5 BoBuS

BoBuS

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • Город:Москва


Отправлено 18 августа 2011 - 11:41

Может кто-нибудь скинуть кусок для запуска своего теста?
Т.е. как я понимаю у всех будет начинаться с <target name="...
  • 0

#6 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 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 (но если хочется -- можно и через системные свойства, конечно).
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#7 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 августа 2011 - 15:29

Виталий, не пугай людей :)

Эх, испугал бы кто меня в своё время, сейчас всё было бы совсем иначе :)
  • 0

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 18 августа 2011 - 15:36


Виталий, не пугай людей :)

Эх, испугал бы кто меня в своё время, сейчас всё было бы совсем иначе :)

Если бы это было действительно серьёзной проблемой для вас -- вы либо уже перешли бы на другой фреймворк, либо переписали TestNG (мы в своё время это и сделали :))
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 18 августа 2011 - 16:31

Мы его частично пропатчили в критичных местах и стараемся теперь не трогать :) Но чего это в своё время стоило...
  • 0

#10 BoBuS

BoBuS

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • Город:Москва


Отправлено 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?
Или я не по тому пути пошел?
  • 0

#11 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 19 августа 2011 - 19:27

Когда запускаю, ругается что

[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?
Или я не по тому пути пошел?

А, это совсем просто -- добавьте JUnit в runtime.classpath -- для запуска он не нужен, но Selenium 1 от него зависит, поэтому в пути должен быть.


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных