En aquest tema, aprendrem com configurar TestNG per treballar amb Selenium. TestNG és un marc de proves popular que proporciona funcionalitats avançades per a l'execució de proves, com ara l'agrupació, la priorització i l'execució paral·lela. Integrar TestNG amb Selenium ens permetrà gestionar i executar les nostres proves de manera més eficient.
- Què és TestNG?
 
TestNG és un marc de proves inspirat en JUnit i NUnit, però amb característiques addicionals que el fan més potent i flexible. Algunes de les seves característiques clau inclouen:
- Anotacions: Faciliten la configuració de proves i la gestió del cicle de vida de les proves.
 - Execució paral·lela: Permet executar proves en paral·lel per reduir el temps total d'execució.
 - Proves basades en dades: Suporta proves amb diferents conjunts de dades.
 - Informes detallats: Genera informes detallats sobre l'execució de les proves.
 
- Configuració de TestNG amb Selenium
 
2.1. Instal·lació de TestNG
Per començar a utilitzar TestNG amb Selenium, primer hem d'instal·lar TestNG al nostre projecte. A continuació es mostren els passos per fer-ho en un projecte Java utilitzant Eclipse:
- Obre Eclipse i selecciona el teu projecte.
 - Fes clic dret sobre el projecte i selecciona 
Properties. - A la finestra de propietats, selecciona 
Java Build Path. - A la pestanya 
Libraries, fes clic aAdd Library. - Selecciona 
TestNGi fes clic aNext. - Fes clic a 
Finishper completar la instal·lació. 
2.2. Configuració del Fitxer testng.xml
El fitxer testng.xml és el cor de la configuració de TestNG. Defineix quines classes de prova s'executaran i com es gestionaran les proves. Aquí tens un exemple bàsic de testng.xml:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite de Proves">
    <test name="Proves de Selenium">
        <classes>
            <class name="com.exemple.tests.PrimerTestSelenium"/>
        </classes>
    </test>
</suite>2.3. Creació d'un Cas de Prova amb TestNG
A continuació, crearem un cas de prova senzill utilitzant TestNG i Selenium:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class PrimerTestSelenium {
    WebDriver driver;
    @BeforeClass
    public void setup() {
        System.setProperty("webdriver.chrome.driver", "ruta/al/driver/chromedriver");
        driver = new ChromeDriver();
    }
    @Test
    public void provaGoogle() {
        driver.get("https://www.google.com");
        assert driver.getTitle().equals("Google");
    }
    @AfterClass
    public void teardown() {
        driver.quit();
    }
}Explicació del Codi
- @BeforeClass: Aquesta anotació indica que el mètode 
setups'executarà abans de qualsevol mètode de prova en la classe. Aquí inicialitzem el WebDriver. - @Test: El mètode 
provaGoogleés el nostre cas de prova. Naveguem a Google i verifiquem que el títol de la pàgina sigui "Google". - @AfterClass: El mètode 
teardowns'executa després de tots els mètodes de prova. Aquí tanquem el navegador. 
- Execució de les Proves
 
Per executar les proves, simplement fes clic dret sobre el fitxer testng.xml a Eclipse i selecciona Run As > TestNG Suite. TestNG gestionarà l'execució de les proves i generarà un informe detallat.
Conclusió
En aquesta secció, hem après com configurar TestNG per treballar amb Selenium, incloent la instal·lació de TestNG, la configuració del fitxer testng.xml i la creació d'un cas de prova bàsic. Aquesta configuració ens permet aprofitar les potents funcionalitats de TestNG per gestionar i executar les nostres proves de manera eficient. En el següent tema, explorarem com crear casos de prova més complexos amb TestNG.
Automatització de Proves amb Selenium
Mòdul 1: Introducció a l'Automatització de Proves
- Què és l'Automatització de Proves?
 - Beneficis de l'Automatització de Proves
 - Visió General de Selenium
 - Configuració del Teu Entorn
 
Mòdul 2: Començant amb Selenium
- Introducció a Selenium WebDriver
 - Instal·lació de Selenium WebDriver
 - Primer Script de Selenium
 - Comprensió de la Interfície WebDriver
 
Mòdul 3: Localització d'Elements Web
- Introducció als Localitzadors
 - Ús de Localitzadors ID i Nom
 - XPath i Selectors CSS
 - Estratègies Avançades de Localització
 
Mòdul 4: Interacció amb Elements Web
- Realització d'Accions sobre Elements Web
 - Gestió de Desplegables i Caixes de Selecció
 - Treballant amb Alertes i Pop-ups
 - Gestió de Finestres del Navegador i Frames
 
Mòdul 5: Sincronització en Selenium
Mòdul 6: Marc de Proves i Selenium
- Introducció a TestNG
 - Configuració de TestNG amb Selenium
 - Creació de Casos de Prova TestNG
 - Proves Basades en Dades amb TestNG
 
Mòdul 7: Conceptes Avançats de Selenium
- Gestió de Trucades AJAX
 - Treballant amb Cookies
 - Captura de Captures de Pantalla
 - Execució de JavaScript amb Selenium
 
Mòdul 8: Selenium Grid i Proves en Paral·lel
- Introducció a Selenium Grid
 - Configuració de Selenium Grid
 - Execució de Proves en Paral·lel
 - Proves Multinavegador
 
Mòdul 9: Integració Contínua i Selenium
- Introducció a la Integració Contínua
 - Integració de Selenium amb Jenkins
 - Automatització de l'Execució de Proves
 - Informes i Registre
 
