0

I've got a problem with parallel starting tests, using Selenium RC+SeleniumGrid+TestNG. While I run the project, all browsers opens but tests runs in appropriate browser one by one. Could you help me, please?

P.S. Sorry for my english...

Here is my artifacts:

fotttest.java:

package ololo;
import org.testng.AssertJUnit;
import com.thoughtworks.selenium.*;    
import org.testng.annotations.*;
//import org.testng.Assert.*;
//import java.util.regex.Pattern;    
public class fotttest {
public Selenium selenium;
    //@BeforeMethod
    @BeforeTest()
    public void setUp() throws Exception {
        selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com.ua/");
        selenium.start();
    }

    @AfterTest()
    public void tearDown() {
    selenium.stop();
    }

    @Test(description="FottballUATest")
    public void TestOne() throws Exception {
        selenium.open("/");
        Thread.sleep(3000);
        selenium.type("id=gbqfq", "football.ua");
        selenium.click("id=gbqfb");
        for (int second = 0;; second++) {
            if (second >= 60) AssertJUnit.fail("timeout");
            try { if (selenium.isElementPresent("link=Football.ua - все о футболе")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }

        selenium.click("css=em");
        selenium.waitForPageToLoad("30000");
        for (int second = 0;; second++) {
            if (second >= 60) AssertJUnit.fail("timeout");
            try { if (selenium.isElementPresent("link=Лига чемпионов")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }

        selenium.click("link=Лига чемпионов");
        selenium.waitForPageToLoad("30000");
        for (int second = 0;; second++) {
            if (second >= 60) AssertJUnit.fail("timeout");
            try { if (selenium.isElementPresent("link=календарь игр")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }

        selenium.click("link=календарь игр");
        selenium.waitForPageToLoad("30000");
        selenium.select("id=ctl00_ctl17_ddlTeam", "label=Барселона");
        selenium.click("css=#ctl00_ctl17_ddlTeam > option[value=\"51\"]");
        selenium.waitForPageToLoad("30000");
        for (int second = 0;; second++) {
            if (second >= 60) AssertJUnit.fail("timeout");
            try { if (selenium.isElementPresent("xpath=(//a[contains(text(),'2')])[9]")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }

        selenium.click("xpath=(//a[contains(text(),'2')])[8]");
        selenium.waitForPageToLoad("30000");
        for (int second = 0;; second++) {
            if (second >= 60) AssertJUnit.fail("timeout");
            try { if (selenium.isTextPresent("Матч завершен! Челси проходит Барселону!")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }       
    }   
}

NewTest:

package ololo;

import org.testng.AssertJUnit;
import com.thoughtworks.selenium.*;

import org.testng.annotations.*;

public class NewTest {
public Selenium selenium;

@BeforeTest()
public void setUp() throws Exception {
    selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com.ua/");
    selenium.start();
}

@AfterTest()
public void tearDown() {
selenium.stop();
}


    @Test (description="IsportTest") 
    public void TestTwo() throws Exception {
        selenium.open("/");
        selenium.type("id=gbqfq", "isport.ua");
        selenium.click("id=gbqfb");
        for (int second = 0;; second++) {
            if (second >= 60) AssertJUnit.fail("timeout");
            try { if (selenium.isElementPresent("css=em")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }

        selenium.click("css=em");
        selenium.waitForPageToLoad("30000");
        for (int second = 0;; second++) {
            if (second >= 60) AssertJUnit.fail("timeout");
            try { if (selenium.isElementPresent("link=БОКС+ММА")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }

        selenium.click("link=БОКС+ММА");
        selenium.waitForPageToLoad("30000");
        for (int second = 0;; second++) {
            if (second >= 60) AssertJUnit.fail("timeout");
            try { if (selenium.isElementPresent("link=Котто: \"Все это время Мейвезер был джентльменом\"")) break; } catch (Exception e) {}
            Thread.sleep(1000);
        }

        selenium.click("link=Котто: \"Все это время Мейвезер был джентльменом\"");
        selenium.waitForPageToLoad("30000");
    }

}

testng.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" preserve-order="true">
    <classes>
      <class name="ololo.NewTest"/>
      <class name="ololo.fotttest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

1 Answer 1

1

parallel="tests" would mean <test> tags would run in parallel. i.e. if you have multiple test tags then they would run in parallel.

<test name="Test1">
<classes>...
</test>
<test name="test2">
<classes>...
</test>

, then test1 and test2 would run in parallel. If you want each testcase to run in parallel, you should set parallel="methods". And similarly for class level parallelism, use classes.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.