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

Фотография

Параллельный запуск разных тестов в разных браузерах


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

#1 Rommy1204

Rommy1204

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Печерский Роман

Отправлено 26 марта 2013 - 10:44

Добрый день, столкнулся с такой проблемой:

Есть ряд тестов, тест1, тест2, тест3, тест4, которые являются методами одного класса с аннотацией @Test

Тесты запускаются с помощью TestNG и выполняюстя параллельно сразу в 2 браузерах

Но как мне сделать запуск тестов так, чтобы (к примеру) два из них запускались в первом браузере, а два другие во втором.

Пробовал через следующие 3 вещи:

package tests;

import java.sql.SQLException;

import org.apache.xpath.operations.Equals;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;


public class NewTest {
WebDriver driver;
@BeforeTest
@Parameters("browser")
public void openBroswer(String browser){

if(browser.equalsIgnoreCase("FF"))
{
System.out.println("Firefox driver would be used");
driver = new FirefoxDriver();
}
else if (browser.equalsIgnoreCase("IE"))
{
System.out.println("Ie webdriver would be used");
System.setProperty("webdriver.ie.driver", "./IEDriverServer.exe");
driver = new InternetExplorerDriver();
}
}


@Test(parameters = "FF")
public void test1() {
driver.get("http://ya.ru");
}

@Test(testName = "Test_ff")
public void test2() {
driver.get("http://google.ru");
}

@Test(groups = "FFonly")
public void test3() {
driver.get("http://mail.ru");
}

@Test
public void test4() {
driver.get("http://gismeteo.ru/");
}

@AfterTest
public void CleanUp() {
driver.quit();
}
}



И к нему XML:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite thread-count="2" name="Suite" parallel="tests">

<test name="Test_ie">
<parameter name="browser" value="IE"></parameter>
<classes>
<class name="tests.NewTest"/>
</classes>
</test> <!-- Test_ie -->

<test name="Test_ff">
<groups>
<include name="FFonly"/>

<parameter name="browser" value="FF"></parameter>
<classes>
<class name="tests.NewTest"/>
</classes>
</groups>
</test> <!-- Test_ff -->

</suite> <!-- Suite -->


Использовал parameters, testName, gropus - не помогло.

В результате, я в любом случае наблюдаю выполнение 8 тестов (4 теста в каждом из 2 браузеров)

Как мне сделать так, чтобы часть тестов выполнялась только в одном браузере, а часть только в другом?

Но при этом, они по-прежнему проходили параллельно

Заранее спасибо :-)
  • 0

#2 Rommy1204

Rommy1204

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Печерский Роман

Отправлено 27 марта 2013 - 07:14

О, все, разобрался, нужно в XML в классе объявить методы и перечислить тесты, тогда они будут выполнены только для определенных тестов :)
  • 0


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

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