Как заставить выполнятся тесты одного конфиг файла TestNG по-очереди
Автор Booch, 05 сен 2011 15:42
Сообщений в теме: 8
#1
Отправлено 05 сентября 2011 - 15:42
Привет
Только начинаю разбираться со связкой TestNG + Selenium RC, прошу помочь со следующим вопросом
Имею конфиг файл TestNG:
<!DOCTYPE suite SYSTEM "http://testng.org/te...estng-1.0.dtd">
<suite thread-count="5" verbose="1" name="Firefox browser" annotations="JDK">
<parameter name="host" value="localhost" />
<parameter name="port" value="4444" />
<parameter name="browser" value="*firefox" />
<parameter name="url" value="http://172.30.198.101:2011" />
<test name="Test1" junit="false" preserve-order="true">
<classes>
<class name="com.BrowserHMI.AllTests">
<methods>
<include name="Test02008"/>
</methods>
</class>
</classes>
</test>
<test name="Test2" junit="false" preserve-order="true">
<classes>
<class name="com.BrowserHMI.AllTests">
<methods>
<include name="Test02039"/>
</methods>
</class>
</classes>
</test>
</suite>
======================
Мой Java класс:
...
public class AllTests extends SeleneseTestCase {
@BeforeSuite(alwaysRun = true)
@Parameters({"host", "port", "browser", "url"})
public void setUp(String host, int port, String browser, String url) {
selenium = new DefaultSelenium(host, port, browser, url);
selenium.start();
}
@AfterSuite(alwaysRun = true)
private void stopTest() {
selenium.stop();
}
@Test(groups = { "TS02", "QNX" }, priority = 2)
public void Test02008() throws Exception {
.....
}
...
@Test(groups = { "TS02", "QNX" }, priority = 1)
public void Test02039() throws Exception {
.....
}
...
======================
Сейчас при запуске этого конфиг-файла запускается класс com.BrowserHMI.AllTests дважды в одно время и при этом в отчете первый тест фейлится с ошибкой "java.lang.NullPointerException
at com.BrowserHMI.AllTests.Test02008(AllTests.java:80)"
Мне бы хотелось чтобы запустился сначала один метод Test02008 из класса com.BrowserHMI.AllTests и потом запустился другой метод Test02039 из того же класса BrowserHMI.AllTests
Как это сделать?
Только начинаю разбираться со связкой TestNG + Selenium RC, прошу помочь со следующим вопросом
Имею конфиг файл TestNG:
<!DOCTYPE suite SYSTEM "http://testng.org/te...estng-1.0.dtd">
<suite thread-count="5" verbose="1" name="Firefox browser" annotations="JDK">
<parameter name="host" value="localhost" />
<parameter name="port" value="4444" />
<parameter name="browser" value="*firefox" />
<parameter name="url" value="http://172.30.198.101:2011" />
<test name="Test1" junit="false" preserve-order="true">
<classes>
<class name="com.BrowserHMI.AllTests">
<methods>
<include name="Test02008"/>
</methods>
</class>
</classes>
</test>
<test name="Test2" junit="false" preserve-order="true">
<classes>
<class name="com.BrowserHMI.AllTests">
<methods>
<include name="Test02039"/>
</methods>
</class>
</classes>
</test>
</suite>
======================
Мой Java класс:
...
public class AllTests extends SeleneseTestCase {
@BeforeSuite(alwaysRun = true)
@Parameters({"host", "port", "browser", "url"})
public void setUp(String host, int port, String browser, String url) {
selenium = new DefaultSelenium(host, port, browser, url);
selenium.start();
}
@AfterSuite(alwaysRun = true)
private void stopTest() {
selenium.stop();
}
@Test(groups = { "TS02", "QNX" }, priority = 2)
public void Test02008() throws Exception {
.....
}
...
@Test(groups = { "TS02", "QNX" }, priority = 1)
public void Test02039() throws Exception {
.....
}
...
======================
Сейчас при запуске этого конфиг-файла запускается класс com.BrowserHMI.AllTests дважды в одно время и при этом в отчете первый тест фейлится с ошибкой "java.lang.NullPointerException
at com.BrowserHMI.AllTests.Test02008(AllTests.java:80)"
Мне бы хотелось чтобы запустился сначала один метод Test02008 из класса com.BrowserHMI.AllTests и потом запустился другой метод Test02039 из того же класса BrowserHMI.AllTests
Как это сделать?
#2
Отправлено 05 сентября 2011 - 19:39
Убрать thread-count="5"
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#3
Отправлено 06 сентября 2011 - 07:02
к сожалению не помогло. все так же фейлится первый тест.Убрать thread-count="5"
если запускаю отдельно его - не фейлится
пробовал разнести тестовые методы по разным классам:
<!DOCTYPE suite SYSTEM "http://testng.org/te...estng-1.0.dtd">
<suite verbose="1" name="Firefox browser" annotations="JDK">
<test name="Test1" junit="false" preserve-order="true">
<classes>
<class name="com.BrowserHMI.AllTests">
<methods>
<include name="Test02008"/>
</methods>
</class>
</classes>
</test>
<test name="Test2" junit="false" preserve-order="true">
<classes>
<class name="com.BrowserHMI.AllTests2">
<methods>
<include name="Test02039"/>
</methods>
</class>
</classes>
</test>
</suite>
в итоге оба теста проходят без ошибки, но классы запускаются одновременно (даже без thread-count="5")
не понимаю в чем проблема (
#4
Отправлено 06 сентября 2011 - 07:35
А как запускаете?
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#5
Отправлено 06 сентября 2011 - 07:44
через ANTА как запускаете?
вот build файл
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE project [
]>
<project name="BrowserHMI" default="usage" basedir=".">
<description>
This buildfile is used to compile and build the automated tests for BrowserHMI project written on Java.
</description>
<!-- ========== Initialize Properties =================================== -->
<property environment="env"/>
<property file="./build.properties"/>
<target name="start-selenium-server">
<java jar="${at.home}/lib/selenium-server-standalone-2.3.0.jar" fork="true" />
</target>
<target name="setClassPath" unless="test.classpath">
<path id="classpath_jars">
<fileset dir="${at.home}/lib" includes="*.jar"/>
</path>
<pathconvert pathsep=":"
property="test.classpath"
refid="classpath_jars"/>
</target>
<target name="init" depends="setClassPath">
<tstamp>
<format property="start.time" pattern="dd/MM/yyyy hh:mm aa" />
</tstamp>
<condition property="ANT"
value="${env.ANT_HOME}/bin/ant.bat"
else="${env.ANT_HOME}/bin/ant">
<os family="windows" />
</condition>
<taskdef name="testng" classpath="${test.classpath}"
classname="org.testng.TestNGAntTask" />
</target>
<!-- clean -->
<target name="clean">
<delete dir="${test.dest}"/>
</target>
<!-- compile -->
<target name="compile" depends="init, clean" >
<delete includeemptydirs="true" quiet="true">
<fileset dir="${test.dest}" includes="**/*"/>
</delete>
<echo message="making directory..."/>
<mkdir dir="${test.dest}"/>
<echo message="classpath: ${test.classpath}"/>
<echo message="compiling..."/>
<javac
debug="true"
destdir="${test.dest}"
includes="AllTests.java"
srcdir="${test.src}"
target="1.5"
classpath="${test.classpath}"
>
</javac>
</target>
<!-- build -->
<target name="build" depends="init">
</target>
<!-- run -->
<target name="run" depends="compile">
<testng classpath="${test.classpath}:${test.dest}" suitename="AllTestsResults">
<xmlfileset dir="${at.home}/TestNG_configs" includes="ChromeConfigQNX.xml, ChromeConfigWIN.xml, FirefoxConfigQNX.xml, FirefoxConfigWIN.xml, OperaConfigQNX.xml, OperaConfigWIN.xml"/>
</testng>
<!--
<testng classpath="${test.classpath}:${test.dest}" groups="fast">
<classfileset dir="${test.dest}" includes="example1/*.class"/>
</testng>
-->
</target>
<!-- rerun failed tests -->
<target name="rerun-failed-tests" depends="compile">
<testng classpath="${test.classpath}:${test.dest}" suitename="RerunResults">
<xmlfileset dir="${at.home}/test-output" includes="testng-failed.xml"/>
</testng>
<!--
<testng classpath="${test.classpath}:${test.dest}" groups="fast">
<classfileset dir="${test.dest}" includes="example1/*.class"/>
</testng>
-->
</target>
</project>
#6
Отправлено 12 сентября 2011 - 08:34
вопрос все еще актуален )
#7
Отправлено 11 октября 2011 - 08:33
upвопрос все еще актуален )
#8
Отправлено 13 октября 2011 - 10:34
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite verbose="1" name="Firefox browser" annotations="JDK"> <parameter name="host" value="localhost" /> <parameter name="port" value="4444" /> <parameter name="browser" value="*firefox" /> <parameter name="url" value="http://172.30.198.101:2011" /> <test name="Test1and2" junit="false" preserve-order="true"> <classes> <class name="com.BrowserHMI.AllTests"> <methods> <include name="Test02008"/> <include name="Test02039"/> </methods> </class> </classes> </test> </suite>только если так, с обязательным использованием preserve-order="true", иначе TestNG по-умолчанию запускает тесты в случайном порядке
Hi! I'm a signature virus. Copy me into your signature to help me spread.
#9
Отправлено 14 октября 2011 - 11:56
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite verbose="1" name="Firefox browser" annotations="JDK"> <parameter name="host" value="localhost" /> <parameter name="port" value="4444" /> <parameter name="browser" value="*firefox" /> <parameter name="url" value="http://172.30.198.101:2011" /> <test name="Test1and2" junit="false" preserve-order="true"> <classes> <class name="com.BrowserHMI.AllTests"> <methods> <include name="Test02008"/> <include name="Test02039"/> </methods> </class> </classes> </test> </suite>только если так, с обязательным использованием preserve-order="true", иначе TestNG по-умолчанию запускает тесты в случайном порядке
спасибо за ответ, сейчас так и делаю..
наверное я не совсем корректно задал вопрос изначально
я бы хотел разнести разные группы тестов по разным тегам test для более наглядного репорта который генерирует TestNG
Например
<test> тесты группы X класса A </test>
<test> тесты группы Y класса A </test>
<test> тесты группы Z класса A </test>
...
Или хотя бы так
<test> тесты группы X класса A </test>
<test> тесты группы Y класса B </test>
<test> тесты группы Z класса C </test>
...
Проблема в том, что у меня запускаются все эти тесты одновременно, а хочется чтобы по очереди
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных