Pregunta

He seguido muchas de las guías y mensajes en el foro en línea, pero no he tenido ninguna suerte conseguir que esto funcione dentro de TestNG. Es una prueba basada rejilla selenio, programado en eclipse. Tenido problemas, así que usa las bibliotecas enumeradas en la sugerencia de este mensaje en el foro: http: //clearspace.openqa. org / mensaje / 66867

Estoy tratando de ejecutar el banco de pruebas en el plugin para Eclipse TestNG (org.testng.eclipse). También probamos correr el tarro de línea de comandos a través de la rejilla de selenio en vano.

Como no soy un desarrollador de Java, para ser honesto, no estoy del todo seguro de lo que debe buscar. Tengo cierta familiaridad con Java gracias al ambiente de procesamiento, pero yo tipo de han echado en Java / Eclipse para esta tarea y estoy en un poco de una pérdida. De todos modos, cualquier ayuda es muy apreciada y gracias de antemano.

Aquí está mi código:

suite.java:

    package seleniumRC;
//import com.thoughtworks.selenium.*;
//import junit.framework.*;
//import java.util.regex.Pattern; 

//import static org.testng.AssertJUnit.assertTrue;
 //import org.testng.annotations.AfterMethod;
//import org.testng.annotations.BeforeMethod;
//import org.testng.annotations.Parameters;
import org.testng.annotations.Test;


public class suite extends Testcase1 {

@Test(groups = {"example", "firefox", "default"}, description = "test1")
    public void user1() throws Throwable {   
     testCase1();
    }

@Test(groups = {"example", "firefox", "default"}, description = "test2")
    public void user2() throws Throwable {

     testCase1();
    }

} 

El caso de prueba real

    package seleniumRC;

//import com.thoughtworks.selenium.*;
//import org.testng.annotations.*;
//import static org.testng.Assert.*;
//import com.thoughtworks.selenium.grid.demo.*;
//import junit.framework.*;
//import com.ibm.icu.*;
//import java.util.regex.Pattern; 

//import static org.testng.AssertJUnit.assertTrue;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Parameters;


public class Testcase1 extends SeleneseTestNgHelper {

 private static int $itter = 10;

 public static void main(String args[]) {
  //junit.textui.TestRunner.run(Suite());
 } 

//public static Test Suite() {
 // return new TestSuite(Testcase1.class);
 //}

// public void setUp() throws Exception {
//  setUp("http://localhost:8080/test", "*firefox");
 //}
 @BeforeMethod(groups = {"default", "example"}, alwaysRun = true)
     @Parameters({"seleniumHost", "seleniumPort", "browser", "webSite"})
     protected void startSession(String seleniumHost, int seleniumPort, String browser, String webSite) throws Exception {
         startSession(seleniumHost, seleniumPort, browser, webSite);
         selenium.setTimeout("120000");
     }

@AfterMethod(groups = {"default", "example"}, alwaysRun = true)
     protected void closeSession() throws Exception {
         closeSession();
     }


 public void testCase1() throws Exception {
  selenium.open("/login.action#login");
  selenium.type("userName", "foo");
  selenium.type("password", "bar");
  selenium.click("login");
  selenium.waitForPageToLoad("30000");
  selenium.click("link=test");
  Thread.sleep(4000);
  selenium.click("//tr[4]/td[1]/a");

  if(selenium.isElementPresent("//input[@id='nextButton']") != false){
  selenium.click("//div[2]/input");
  }
  Thread.sleep(2000);

  for(int i=0; i < $itter; i++) {
  if(selenium.isElementPresent("//label") != false){

    selenium.click("//label");
    selenium.click("submitButton");
    Thread.sleep(1500);
  }
  else{ Thread.sleep(1500);}
  }

   selenium.click("//body/div[2]/div[1]/div/a");
   Thread.sleep(1500);
   selenium.click("//a[contains(text(),'Finish Now')]");


  Thread.sleep(2000);
  selenium.click("link=View Results");
  Thread.sleep(30000);
  selenium.click("showAllImgCaption");
  Thread.sleep(12000);
  selenium.click("generateTimeButton");
  Thread.sleep(2000);
  selenium.click("link=Logout");
  selenium.waitForPageToLoad("15000");
 }
 }

y la clase SeleneseTestNGHelper

   package seleniumRC;

import java.lang.reflect.Method;
//import java.net.BindException;

import com.thoughtworks.selenium.*;

//import org.openqa.selenium.SeleniumTestEnvironment;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
//import org.openqa.selenium.environment.GlobalTestEnvironment;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;

public class SeleneseTestNgHelper extends SeleneseTestCase
{
    private static Selenium staticSelenium;

    @BeforeTest
    @Override
    @Parameters({"selenium.url", "selenium.browser"})
    public void setUp(@Optional String url, @Optional String browserString) throws Exception {
        if (browserString == null) browserString = runtimeBrowserString();

        WebDriver driver = null;
        if (browserString.contains("firefox") || browserString.contains("chrome")) {
          System.setProperty("webdriver.firefox.development", "true");
          driver = new FirefoxDriver();
        } else if (browserString.contains("ie") || browserString.contains("hta")) {
          driver = new InternetExplorerDriver();
        } else {
          fail("Cannot determine which browser to load: " + browserString);
        }

        if (url == null)
          url = "http://localhost:4444/selenium-server";
        selenium = new WebDriverBackedSelenium(driver, url);

        staticSelenium = selenium;
    }

    @BeforeClass
    @Parameters({"selenium.restartSession"})
    public void getSelenium(@Optional("false") boolean restartSession) {
        selenium = staticSelenium;
        if (restartSession) {
            selenium.stop();
            selenium.start();
        }
    }

    @BeforeMethod
    public void setTestContext(Method method) {
        selenium.setContext(method.getDeclaringClass().getSimpleName() + "." + method.getName());

    }

    @AfterMethod
    @Override
    public void checkForVerificationErrors() {
        super.checkForVerificationErrors();
    }

    @AfterMethod(alwaysRun=true)
    public void selectDefaultWindow() {
        if (selenium != null) selenium.selectWindow("null");
    }

    @AfterTest(alwaysRun=true)
    @Override
    public void tearDown() throws Exception {
//        super.tearDown();
    }

    //@Override static method of super class (which assumes JUnit conventions)
    public static void assertEquals(Object actual, Object expected) {
        SeleneseTestBase.assertEquals(expected, actual);
    }

    //@Override static method of super class (which assumes JUnit conventions)
    public static void assertEquals(String actual, String expected) {
        SeleneseTestBase.assertEquals(expected, actual);
    }

    //@Override static method of super class (which assumes JUnit conventions)
    public static void assertEquals(String actual, String[] expected) {
        SeleneseTestBase.assertEquals(expected, actual);
    }

    //@Override static method of super class (which assumes JUnit conventions)
    public static void assertEquals(String[] actual, String[] expected) {
        SeleneseTestBase.assertEquals(expected, actual);
    }

    //@Override static method of super class (which assumes JUnit conventions)
    public static boolean seleniumEquals(Object actual, Object expected) {
        return SeleneseTestBase.seleniumEquals(expected, actual);
    }

    //@Override static method of super class (which assumes JUnit conventions)
    public static boolean seleniumEquals(String actual, String expected) {
        return SeleneseTestBase.seleniumEquals(expected, actual);
    }

    @Override
    public void verifyEquals(Object actual, Object expected) {
        super.verifyEquals(expected, actual);
    }

    @Override
    public void verifyEquals(String[] actual, String[] expected) {
        super.verifyEquals(expected, actual);
    }
}
¿Fue útil?

Solución

Así que lo resolvió dejando caer la clase seleniumTestNGHelper y reelaboración de las rutas de clases a través del archivo de hormigas. Es necesario trabajar por completo mi suite / casos de prueba originales, pero trabajó bien dentro de la red.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top