Selenium è una suite di strumenti specifici per effettuare il test delle applicazioni web.
Vediamo passo passo come effettuare dei test con questo efficace strumento.
1) Installare il selenium IDE in Firefox
Vediamo passo passo come effettuare dei test con questo efficace strumento.
1) Installare il selenium IDE in Firefox
Questo strumento consente di registrare dei test direttamente da firefox.Una volta effettuato il test sarà possibile vedere il codice sorgente relativo al nostro test.L’impostazione di default è che la registrazione parte in automatico non appena parte il Selenium IDE, è pertanto necessario modificarla.Una volta registrato esportiamo lo script relativo alla registrazione nel linguaggio da noi desiderato.
In questo esempio ho registrato un semplice test navigano nelle diverse sezioni di questo blog ed ho esportato in java lo script che ne risulta.
Quindi ho ottenuto una cosa di questo tipo:
import org.testng.annotations.Test;
import com.thoughtworks.selenium.SeleneseTestNgHelper;
public class test_java extends SeleneseTestNgHelper {
@Test
public void testTest_java() throws Exception {
selenium.open("/p/implementare-un-converter-in-javaserver.html");
selenium.click("link=Converter JSF");
selenium.waitForPageToLoad("30000");
selenium.click("link=Home page");
selenium.waitForPageToLoad("30000");
selenium.click("//img[contains(@src,'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9W51j7umgXgmYlrUi6yl5s97kLAe8qYPRdtGm3Dh7La_0uHrEbN0dUrDb9LpkSt4Oqu3m3XJ6Dh6aD83mhLc5wZG-RtfeHhDNmvN0NPZhdA_e-DCDzV-ISWevIWsL68AhO-4vOA-rHzoj/s400/report__3.JPG')]");
selenium.waitForPageToLoad("30000");
}
}
private Selenium browser;
public void setUp() {
browser = new DefaultSelenium("localhost",
4444, "*firefox", "http://www.google.com");
browser.start();
}
public void testGoogle() {
browser.open("http://www.google.com/webhp?hl=en");
browser.type("q", "hello world");
browser.click("btnG");
browser.waitForPageToLoad("5000");
assertEquals("hello world - Google Search", browser.getTitle());
}
public void tearDown() {
browser.stop();
}
}
Le librerie necessarie relative a testNG ed a selenium vanno scaricate in modo da poter far girare i test.
A questo punto per poter far girare il server come descritto nella guida:
semplicemente spostandosi nella directory dove è presente selenium-server.jar e avviare il server con il comando java -jar selenium-server.jar.
aggiungiamo al test che abbiamo esportato un altro breve frammento di codice utilizzando le annotazioni di TestNG:
@BeforeTest
public void setUp() throws Exception {
setUp("http://javapassionblog.blogspot.com/", "*firefox");
// We instantiate and start the browser
}
Questo ci dice il browser che verrà usato,nonché l’indirizzo della pagina principale.
A questo punto scegliendo Run AS àTestNg test avremo il seguente errore :
403 Error_Message = Forbidden+for+Proxy
Esaminando alcuni forum sembra che questo errore sia dovuto all’annotazione utilizzata per il TestNG @BeforeTest.
Il suggerimento era quello di spostare tale codice direttamente all’interno del test .
Quindi ecco ciò che otteniamo:
@Test
public void testTest_java() throws Exception {
setUp("http://javapassionblog.blogspot.com/", "*firefox");
selenium.open("/p/implementare-un-converter-in-javaserver.html");
selenium.click("link=Converter JSF");
selenium.waitForPageToLoad("30000");
selenium.click("link=Home page");
selenium.waitForPageToLoad("30000");
selenium.click("//img[contains(@src,'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9W51j7umgXgmYlrUi6yl5s97kLAe8qYPRdtGm3Dh7La_0uHrEbN0dUrDb9LpkSt4Oqu3m3XJ6Dh6aD83mhLc5wZG-RtfeHhDNmvN0NPZhdA_e-DCDzV-ISWevIWsL68AhO-4vOA-rHzoj/s400/report__3.JPG')]");
selenium.waitForPageToLoad("30000");
}
Eseguiamolo e vedremo aprirsi il Selenium Remote Control composto da una command history in cui verrano elencati i comandi eseguiti:
getTitle()
setContext(99e15e4e6edd45d4a145e298d6a8e82c)
setContext(test_java.testTest_java).
Contemporaneamente Firefox andrà ad eseguire i test che avevamo registrato presenti nel nostro testTest_java() ,concluso il test, l'IDE ci segnalerà che il test si è concluso con successo.
ESEMPIO 2 :
public class GoogleTest extends TestCase {private Selenium browser;
public void setUp() {
browser = new DefaultSelenium("localhost",
4444, "*firefox", "http://www.google.com");
browser.start();
}
public void testGoogle() {
browser.open("http://www.google.com/webhp?hl=en");
browser.type("q", "hello world");
browser.click("btnG");
browser.waitForPageToLoad("5000");
assertEquals("hello world - Google Search", browser.getTitle());
}
public void tearDown() {
browser.stop();
}
}