Sunt nou în ambele Seleniul WebDriver si Java. Am niște webservices pe site-ul meu pe pagina /someservice.php. Am scris câteva teste pe Selenuim și funcționează bine. Exemplu de cod (Clasa principal):
public class SiteClass {
static WebDriver driver;
private static boolean findElements(String xpath,int timeOut ) {
public static void open(String url){
//Here we initialize the firefox webdriver
driver=new FirefoxDriver();
driver.get(url);
}
public static void close(){
driver.close();
}
WebDriverWait wait = new WebDriverWait( driver, timeOut );
try {
if( wait.until( ExpectedConditions.visibilityOfElementLocated( By.xpath( xpath ) ) ) != null ) {
return true;
} else {
return false;
}
} catch( TimeoutException e ) {
return false;
}}
public static Boolean CheckDiameter(String search,String result){
driver.findElement(By.xpath(//input[@id='search_diam'])).sendKeys(search);
WebDriverWait wait = new WebDriverWait(driver, 5);
WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(//div[@class='ac_results'][last()]/ul/li)));
WebElement searchVariant=driver.findElement(By.xpath(//div[@class='ac_results'][last()]/ul/li));
Actions action = new Actions(driver);
action.moveToElement(searchVariant).perform();
driver.findElement(By.xpath(//li[@class='ac_over'])).click();
Boolean iselementpresent = findElements(result,5);
return iselementpresent;
}
}
Exemplu de cod (Test Class)
@RunWith(Parameterized.class)
public class DiamTest {@Parameters
public static Collection<Object[]> diams() {
return Arrays.asList(new Object[][] {
{ 111, //div[@class='jGrowl-message'],true},
{ 222, //div[@class='jGrowl-message'],false},
{ 333, //div[@class='jGrowl-message'],true},
});
}
private String inputMark;
private String expectedResult;
private Boolean assertResult;
public DiamTest(String mark, String result, boolean aResult) {
inputMark=mark;
expectedResult=result;
assertResult=aResult;
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
/**
* Test of CheckDiameter method, of class CableRu.
*/
@Test
public void testCheckDiameter() {
SiteClass obj=new SiteClass();
obj.open(http://example.com/services.php);
assertEquals(assertResult, obj.CheckDiameter(inputMark, expectedResult));
obj.close();
}
}
Acum am 2 teste de genul asta cu 3 parametrii fiecare (în total 6 variante). După cum puteți vedea în fiecare varianta I a crea o fereastră nouă de browser și când am rulat toate cele 6 variante care iau prea mult timp (până la 80 de secunde).
Cum pot rula toate variantele într-o singură fereastră de browser pentru a accelera testele mele?