简体   繁体   中英

Executing tests Concurrently on different OS and Browsers with WebDriver using Java and TestNG

I have configured grid in my system and written my test script. I can run my test on any specified OS and any Browser but only on one OS and one Browser at one time not all OS and all Browser simultaneously. Here is what I have done. Please tell me how can I configure it so that it can run in configured OS in one time.

My Script using Java is below:

import java.net.MalformedURLException;
import java.net.URL;
import org.junit.AfterClass;
import org.openqa.selenium.*;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.*;

public class GridWithWebdriver {

    public WebDriver driver;

    @Parameters({"browser"})
    @BeforeClass
    public void setup(String browser) throws MalformedURLException {
        DesiredCapabilities capability=null;

        if(browser.equalsIgnoreCase("firefox")){
            System.out.println("firefox");
            capability= DesiredCapabilities.firefox();
            capability.setBrowserName("firefox"); 
            capability.setPlatform(org.openqa.selenium.Platform.ANY);
            //capability.setVersion("");
        }

        if(browser.equalsIgnoreCase("iexplore")){
            System.out.println("iexplore");
            capability= DesiredCapabilities.internetExplorer();
            capability.setBrowserName("iexplore"); 
            capability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
            //capability.setVersion("");
        }

        driver = new RemoteWebDriver(<span class="IL_AD" id="IL_AD11">new URL</span>("http://localhost:4444/wd/hub"), capability);
        driver.navigate().to("http://google.com");

    }

    @Test
    public void test_first() throws InterruptedException{
        Thread.sleep(3000);
        WebElement search_editbox   =   driver.findElement(By.name("q"));
        WebElement search_button    =   driver.findElement(By.name("btnG"));
        search_editbox.clear();
        search_editbox.sendKeys("first");
        search_button.click();
    }

    @Test
    public void test_second(){
        WebElement search_editbox   =   driver.findElement(By.name("q"));
        WebElement search_button    =   driver.findElement(By.name("btnG"));
        search_editbox.clear();
        search_editbox.sendKeys("second");
        search_button.click();
    }

    @AfterClass
    public void tearDown(){
        driver.quit();
    }
}

Testng.xml:

<suite name="Selenium <span class="IL_AD" id="IL_AD7">Grid with</span> webdriver" verbose="3"  parallel="classes" thread-count="2">   
  <test name="Selenium Grid Demo">
  <parameter name="browser" value="iexplore"/>
    <classes>
      <class name="tests.GridWithWebdriver"/>
      <class name="tests.GridWithWebdriver1"/>
    </classes>
 </test>
 </suite>

Aditya,

Your code(testng.xml) for running parallel test on different-different or same system should be like below:

Testng.xml

 <!DOCTYPE suite SYSTEM "Http://testng.org/testng-1.0.dtd">
    <suite name="My Sample Suite" verbose="3"  parallel="tests" thread-count="2">   


      <test name="Run on Firefox">
        <parameter name="mybrowser"  value="firefox"/>
        <parameter name="myip"  value="http://172.16.10.119:5566/wd/hub"/>
        <classes>
          <class name="testcases.Login"/>
        </classes>
     </test>  
    <test name="Run on Chrome">
        <parameter name="mybrowser"  value="chrome"/>
        <parameter name="myip"  value="http://172.16.10.106:5567/wd/hub"/>
        <classes>
          <class name="testcases.Login"/>
        </classes>
     </test> 
     </suite>

here i am trying to acess one linux(ttp://172.16.10.119:5566) and one mac(http://172.16.10.106:5567) and sending its ip and browser as a parameter. To run it parallel i have mentioned in my <testsuite> tag as parallel="tests" thread-count="2"

I hope that you are pretty clear now.

Tester approach:

  • Make your test to be runnable as independent .jar file. Which means the test will not be actually a @Test but some method or piece of code inside main method
  • Pro tip : If you can, run the nodes against the same hub. This can be done if the computers are in same network and you can access these computers.
  • If this can be done, you will just run the .jar file twice, telling it where the huib is, and nodes will be assigned automatically
  • If this cannot be done, you will have to deploy these .jar files on each computer (node) and run them (requires two people in most cases)

Example:

My own computer has IP 10.131.7.11 inside local network. So I will run the hub and each node will just do this:

java -jar selenium-server-standalone-2.32.0.jar -role webdriver -hub http://10.131.7.11:4444/grid/register -port 7575 -browser browserName=firefox,version=18,platform=WINDOWS

Once the nodes are running, I will run the test twice. The hub will then automatically assign browsers to concrete node.

Developer approach:

  • you can use multithreading and run the test once, in two threads.

But since I am tester, I use the first approach :) And I did communicate with our developers who helped me to create multithreading test suite which is idiot proof (tested on myself :) )

Well, create another <test> tag and pass the other browser as the parameter for the second test. You might want to change parallel to tests or keep using classes. Also if you want to have different OSs then you need to have the Platform param too to be sent from the xml.

package concore;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

import net.sourceforge.htmlunit.corejs.javascript.ast.WithStatement;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.net.INetAddress;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.Select;

public class ConcurrentTestSMS {
    public WebDriver dri = null;
    private File file;
    private FileOutputStream fos;
    String error = "http://ip/sspjuly08/Errorpage.aspx";
    public long timeBefore;
    public long timeAfter;
    public long cal;
    public int drive;

    public ConcurrentTestSMS() {
        // Initializing file object
        file = new File("D:\\concorentTestingsmsLog.xls");

        try {
            // Creating new file if it doesn't exist
            if (!file.exists()) {
                file.createNewFile();
            }
            // Initializing file writer object
            fos = new FileOutputStream(file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static String captureScreenshot(RemoteWebDriver drivers,
            String folder, String fileName) {
        File screenshotFile = ((TakesScreenshot) drivers)
                .getScreenshotAs(OutputType.FILE);
        File targetFile = new File(folder, fileName + ".png");
        // File targetFile=new File("D:\\alagar.png");
        try {
            FileUtils.copyFile(screenshotFile, targetFile);
        } catch (IOException e) {
            // logger.error ("Error while writing file ",e);
        }

        return targetFile.getAbsolutePath();
    }

    // method to write the error file
    protected void writeToFile(String logMsg) {
        try {
            fos.write(logMsg.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    int num = 100903;
    int loaddata = 01;

    private WebDriver getDriver(String url, DesiredCapabilities caps) {
        WebDriver webDriver = null;
        try {
            webDriver = new RemoteWebDriver(new URL(url), caps);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        return webDriver;
    }

    public void setup(String platform, String browser, String version,
            String url) throws MalformedURLException, InterruptedException, UnknownHostException {
        DesiredCapabilities caps = new DesiredCapabilities();
        // Platforms
        if (platform.equalsIgnoreCase("WINDOWS"))
            caps.setPlatform(org.openqa.selenium.Platform.WINDOWS);
        System.out.println(org.openqa.selenium.Platform.WINDOWS);
        // Browsers
        if (browser.equalsIgnoreCase("Internet Explorer"))
            caps = DesiredCapabilities.internetExplorer();
        if (browser.equalsIgnoreCase("Firefox"))
            caps = DesiredCapabilities.firefox();
        if (browser.equalsIgnoreCase("iPad"))
            caps = DesiredCapabilities.ipad();
        if (browser.equalsIgnoreCase("Android")) {
            caps = DesiredCapabilities.android();
        }
        writeToFile("Client\tEvent Page\tTaken Time\n");
        // Version
        caps.setVersion("18.0.1");
        String[] urls = { "http://ipip:8989/wd/hub",
                "http://ip:8989/wd/hub" };
        System.out.println(InetAddress.getLocalHost().getHostAddress());

        // Remote systemS
         timeBefore = System.currentTimeMillis();
        WebDriver driver1 = getDriver("http://172.21.1.89:8989/wd/hub", caps);
         timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver1, "driver1 in http://172.21.1.89","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver2 = getDriver("http://172.21.1.4:8989/wd/hub", caps);
        System.out.println(InetAddress.getLocalHost().getHostAddress());
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver2, "driver2 in http://172.21.1.4","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver3 = getDriver("http://172.21.1.89:8989/wd/hub", caps);
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver3, "driver3 in http://172.21.1.89","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver4 = getDriver("http://172.21.1.4:8989/wd/hub", caps);
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver4, "driver4 in http://172.21.1.4","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver5 = getDriver("http://172.21.1.89:8989/wd/hub", caps);
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver5, "driver5 in http://172.21.1.89","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver6 = getDriver("http://172.21.1.4:8989/wd/hub", caps);
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver6, "driver6 in http://172.21.1.4","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver7 = getDriver("http://172.21.1.89:8989/wd/hub", caps);
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver7, "driver7 in http://172.21.1.89","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver8 = getDriver("http://172.21.1.4:8989/wd/hub", caps);
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver8, "driver8 in http://172.21.1.4","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver9 = getDriver("http://172.21.1.89:8989/wd/hub", caps);
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver9, "driver9 in http://172.21.1.89","connecting client system", cal);
         timeBefore = System.currentTimeMillis();
        WebDriver driver10 = getDriver("http://172.21.1.4:8989/wd/hub", caps);
        timeAfter = System.currentTimeMillis();
         cal = timeAfter - timeBefore;
         currectpage(driver10, "driver10 in http://172.21.1.89","connecting client system", cal);
        List<WebDriver> drivers = new ArrayList<WebDriver>();
        List<String> usernames = new ArrayList<String>();
        List<String> passwords = new ArrayList<String>();
        if (driver1 != null) {
            drivers.add(driver1);
            usernames.add("test");
            passwords.add("test1");
        }
        if (driver2 != null) {
            drivers.add(driver2);
            usernames.add("user1");
            passwords.add("user1");
        }
        if (driver3 != null) {
            drivers.add(driver3);
            usernames.add("user2");
            passwords.add("user2");
        }
        if (driver4 != null) {
            drivers.add(driver4);
            usernames.add("user3");
            passwords.add("user3");
        }
        if (driver5 != null) {
            drivers.add(driver5);
            usernames.add("user4");
            passwords.add("user4");
        }
        if (driver6 != null) {
            drivers.add(driver6);
            usernames.add("user5");
            passwords.add("user5");
        }
        if (driver7 != null) {
            drivers.add(driver7);
            usernames.add("user6");
            passwords.add("user6");
        }
        if (driver8 != null) {
            drivers.add(driver8);
            usernames.add("user7");
            passwords.add("user7");
        }
        if (driver9 != null) {
            drivers.add(driver9);
            usernames.add("user8");
            passwords.add("user8");
        }
        if (driver10 != null) {
            drivers.add(driver10);
            usernames.add("test");
            passwords.add("test");
        }

        for (WebDriver driver : drivers) {
            driver.get("http://172.21.1.4/sspjuly08/");

        }
        System.out.println("OPENED ALL");
        // Sending the UserName
             drive=0;
        for (int i = 0; i < drivers.size(); i++) {
            drive++;
            timeBefore = System.currentTimeMillis();
            executeUsernameForAllURLs(urls, By.xpath("//*[@id='txtUserName']"),
                    caps, drivers.get(i), usernames.get(i));
            timeAfter = System.currentTimeMillis();
             cal = timeAfter - timeBefore;
             currectpage(drivers.get(i), "driver"+drive+".... in "+drivers.get(i).getCurrentUrl().toString(),"Passing the username", cal);

        }
         drive=0;
        for (int i = 0; i < drivers.size(); i++) {
            drive++;
            timeBefore = System.currentTimeMillis();
            executePasswordForAllURLs(urls, By.xpath("//*[@id='txtPassword']"),
                    caps, drivers.get(i), usernames.get(i));
            timeAfter = System.currentTimeMillis();
             cal = timeAfter - timeBefore;
             currectpage(drivers.get(i), "driver"+drive+".... in "+drivers.get(i).getCurrentUrl().toString(),"Passing the password", cal);
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            try {
                timeBefore = System.currentTimeMillis();
                executeClickForAllURLs(urls, By.xpath("//*[@id='imgLogin']"), caps,
                        driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Clicking the Login button", cal);
            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            try {
                timeBefore = System.currentTimeMillis();
                executeClickForAllURLs(
                        urls,
                        By.xpath("//*[@id='ctl00_ContentPlaceHolder1_idImage']/table/tbody/tr[7]/td[1]/a/img"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Clicking the SMS module", cal);
            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            try {
                timeBefore = System.currentTimeMillis();
                driver.get("http://172.21.1.4/sspjuly08/Module/SMS/SMSBrowse.aspx");
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Open the SendSMS page", cal);
            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }

        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Click the homework tab to send sms 
            try {
                timeBefore = System.currentTimeMillis();
                executeClickForAllURLs(
                        urls,
                        By.xpath("//*[@id='__tab_ctl00_ContentPlaceHolder1_tcPnlView_Homework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"click the HOmework tab to send the sms", cal);
            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }

        drive=0;
        for (WebDriver driver : drivers) {
            // sending the value of Homework date
            drive++;
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkdateForAllURLs(urls,
                        By.name("txtDate"), caps,
                        driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Sending the Homework date", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Click the class from the list
            try {
                timeBefore = System.currentTimeMillis();
                executeClickForAllURLs(
                        urls,
                        By.xpath("//*[@id='txtDisplayClass']"),
                        caps, driver);
                executeClickForAllURLs(
                        urls,
                        By.xpath("//*[@id='chkClass_0']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"click the class from the combo", cal);
            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }


        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Click the go Button
            try {
                timeBefore = System.currentTimeMillis();
                executeClickForAllURLs(
                        urls,
                        By.xpath("//*[@id='btnGo_B']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"click the Go button", cal);
            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl02_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }

        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl03_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl04_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl05_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl06_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl07_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("/*[@id='gvHomework_ctl08_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl09_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl10_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }
        drive=0;
        for (WebDriver driver : drivers) {
            drive++;
            // Sending the homework through sms
            try {
                timeBefore = System.currentTimeMillis();
                SendHomeworkDescriptionForAllURLs(
                        urls,
                        By.xpath("//*[@id='gvHomework_ctl11_txtHomework']"),
                        caps, driver);
                timeAfter = System.currentTimeMillis();
                 cal = timeAfter - timeBefore;
                 currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"Send the sms for the home work", cal);

            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }
        }

        drive=0;
        for(WebDriver driver:drivers){
            drive++;
            //capturing the message
            try {
                String message="The Record has been successfully saved";
                WebElement successmessage=dri.findElement(By.xpath("//*[@id='ctl00_ContentPlaceHolder1_lblMessage']"));
                if(successmessage.getText().toString().equalsIgnoreCase(message)){
                    currectpage(driver, "driver"+drive+".... in "+driver.getCurrentUrl().toString(),"The Record has been successfully saved", cal);
                }
                else{
                    writeToFile("The saved message is not shown "+drive+"\n");
                }
            } catch (Exception e) {
                e.printStackTrace();
                writeToFile("Error has been accured in client "+drive+"\n");
            }

        }


    }

    public void executeUsernameForAllURLs(String[] urls, By by,
            DesiredCapabilities caps, WebDriver driver, String username)
            throws MalformedURLException {

        driver.findElement(by).sendKeys(username);

    }

    public void executePasswordForAllURLs(String[] urls, By by,
            DesiredCapabilities caps, WebDriver driver, String password)
            throws MalformedURLException {

        driver.findElement(by).sendKeys(password);

    }

    public void executeClickForAllURLs(String[] urls, By by,
            DesiredCapabilities caps, WebDriver driver)
            throws MalformedURLException {

        driver.findElement(by).click();

    }

    public void ExcuteStudentClearValueForAllURLs(String[] urls, By by,
            DesiredCapabilities caps, WebDriver driver)
            throws MalformedURLException {

        driver.findElement(by).clear();

    }

    public void SendHomeworkdateForAllURLs(String[] urls, By by,
            DesiredCapabilities caps, WebDriver driver)
            throws MalformedURLException {

        driver.findElement(by).sendKeys("01/08/2013");

    }

    public void SendHomeworkDescriptionForAllURLs(String[] urls, By by,
            DesiredCapabilities caps, WebDriver driver)
            throws MalformedURLException {

        driver.findElement(by).sendKeys("test" + new Integer(num++).toString());

    }

    public void SelectingthesubjectForAllURLs(String[] urls, By by,
            DesiredCapabilities caps, WebDriver driver)
            throws MalformedURLException {

        new Select(driver.findElement(by)).selectByVisibleText("ENGLISH");

    }

    public void SendingtheClassForAllURLs(String[] urls, By by,
            DesiredCapabilities caps, WebDriver driver)
            throws MalformedURLException {

        new Select(driver.findElement(by)).selectByVisibleText("VI A");

    }

    public void currectpage(WebDriver driver, String clintname,
            String EventPage, long timeTaken) {
        String page = driver.getCurrentUrl();
        if (page.toString().equalsIgnoreCase(error.toString())) {

            errorpage(clintname);
        } else {
            writeToFile(clintname + "\t" + EventPage + "\t" + timeTaken+"\n");
        }
    }

    public void errorpage(String clintname) {
        writeToFile(clintname + "\tShowing the runtime error\n");
    }

    public static void main(String[] args) throws MalformedURLException,
            InterruptedException, UnknownHostException {
        ConcurrentTestSMS te = new ConcurrentTestSMS();
        te.setup("WINDOWS", "Firefox", "18.0.1",
                "http://172.21.1.89:8989/wd/hub");
    }
}

Here is an example.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM