Buscar..


Introducción

Este tema cubre la creación de informes HTML para pruebas de selenio. Hay varios tipos de complementos disponibles para informes y los más utilizados son Allure, ExtentReports y ReportNG.

ExtentReports

Este ejemplo cubre la implementación de ExtentReports en Selenium usando TestNG, Java y Maven.

Los ExtentReports están disponibles en dos versiones, comunitaria y comercial. Para la facilidad y el propósito de demostración, usaremos la versión de la comunidad.

1. Dependencia

Agregue la dependencia en su archivo pom.xml de Maven para los informes de extensión.

   <dependency>
        <groupId>com.aventstack</groupId>
        <artifactId>extentreports</artifactId>
        <version>3.0.6</version>
    </dependency>

2. Configurar complementos

Configure el plugin maven surefire como se muestra a continuación en pom.xml

    <build>
    <defaultGoal>clean test</defaultGoal>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
                <source>${jdk.level}</source>
                <target>${jdk.level}</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

3. Prueba de muestra con ExtentReports

Ahora, crea una prueba con el nombre test.java

public class TestBase {
    WebDriver driver;

    ExtentReports extent;
    ExtentTest logger;
    ExtentHtmlReporter htmlReporter;
    String htmlReportPath = "C:\\Screenshots/MyOwnReport.html"; //Path for the HTML report to be saved

    @BeforeTest
    public void setup(){
        htmlReporter = new ExtentHtmlReporter(htmlReportPath);
        extent = new ExtentReports();
        extent.attachReporter(htmlReporter);

        System.setProperty("webdriver.chrome.driver", "pathto/chromedriver.exe");
        driver = new ChromeDriver();
    
    }

    @Test
    public void test1(){
        driver.get("http://www.google.com/");
        logger.log(Status.INFO, "Opened site google.com");
        assertEquals(driver.getTitle()), "Google");
        logger.log(Status.PASS, "Google site loaded");
    }

    @AfterMethod
    public void getResult(ITestResult result) throws Exception {
        if (result.getStatus() == ITestResult.FAILURE)
        {
            logger.log(Status.FAIL, MarkupHelper.createLabel(result.getName() + " Test case FAILED due to below issues:", ExtentColor.RED));
            logger.fail(result.getThrowable());
        } 
        else if (result.getStatus() == ITestResult.SUCCESS)
        {
            logger.log(Status.PASS, MarkupHelper.createLabel(result.getName() + " Test Case PASSED", ExtentColor.GREEN));
        } 
        else if (result.getStatus() == ITestResult.SKIP)
        {
            logger.log(Status.SKIP, MarkupHelper.createLabel(result.getName() + " Test Case SKIPPED", ExtentColor.BLUE));
        }
     }

    @AfterTest
    public void testend() throws Exception {
        extent.flush();
    }

    @AfterClass
    public void tearDown() throws Exception {
        driver.close();
    }

Informes de encanto

Este ejemplo cubre la implementación de Allure Reports en Selenium utilizando TestNG, Java y Maven.

Configuración de Maven

Repositorio

Agregue el siguiente código para configurar el repositorio jcenter

<repository>
            <id>jcenter</id>
            <name>bintray</name>
            <url>http://jcenter.bintray.com</url>
</repository>

Dependencia

Agregue las siguientes dependencias a su pom.xml

<dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>${aspectj.version}</version>
    </dependency>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-testng-adaptor</artifactId>
        <version>1.5.4</version>
    </dependency>

Configuración del complemento Surefire

<plugin>
        <groupId> org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.20</version>
        <configuration>
            <argLine>-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
            </argLine>
            <properties>
                <property>
                    <name>listener</name>
                    <value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
                </property>
            </properties>
            <suiteXmlFiles>testng.xml</suiteXmlFiles>
            <testFailureIgnore>false</testFailureIgnore>
        </configuration>
    </plugin>

Prueba de muestra para Allure Report

Crear una prueba de muestra con el nombre test.java

public class test{
    WebDriver driver;
    WebDriverWait wait;

    @BeforeMethod
    public void setup() {
        System.setProperty("webdriver.chrome.driver", "path to/chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("https://www.google.com/");
        wait = new WebDriverWait(driver,50);
    }

    @Title("Title check")
    @Description("Checking the title of the loaded page.")
    @Test
    public void searchTest(){
        String title = driver.getTitle();
        LogUtil.log("Title Fetched: "+title);
        assertEquals(title,"Google");
        LogUtil.log("Test Passed. Expected: Google | Actual: "+title);
        System.out.println("Page Loaded");
    }

    @AfterMethod
    public void teardown(){
        driver.close();
    }
}

En la clase anterior hemos utilizado la clase LogUtiil. Esto se hace simplemente para registrar los pasos en nuestra prueba. A continuación se muestra el código para el mismo

LogUtil.java

public final class LogUtil {

    private LogUtil() {
    }

    @Step("{0}")
    public static void log(final String message){
        //intentionally empty
    }
} 

aquí

@Title ("") agregará el título a su prueba en Allure Report

@Description ("") agregará la descripción a su prueba

@Paso ("") agregará un paso en el informe de atractivo para la prueba

Durante la ejecución, se generará un archivo xml en la carpeta "target / allure-results /"

Informe final con Jenkins

Si se está ejecutando en Jenkins con el complemento Allure Report instalado, Jenkins procesará automáticamente el informe en su trabajo.

Informe final sin Jenkins

Para aquellos que no tienen un Jenkins, use la siguiente línea de comandos para crear el informe html. Allure CLI es una aplicación Java, por lo que está disponible para todas las plataformas. Tiene que instalar manualmente Java 1.7+ antes de usar Allure CLI.

Debian

Para los repositorios basados ​​en Debian proporcionamos un PPA para que la instalación sea sencilla: Instale Allure CLI para debian

$ sudo apt-add-repository ppa:yandex-qatools/allure-framework
$ sudo apt-get update 
$ sudo apt-get install allure-commandline

Las distribuciones soportadas son: Trusty y Precise. Después de la instalación, tendrá un comando de encanto disponible.

Mac OS

Puede instalar Allure CLI a través de Homebrew.

$ brew tap qatools/formulas 
$ brew install allure-commandline

Después de la instalación, tendrá un comando de encanto disponible.

Windows y otros Unix

  1. Descargue la versión más reciente como archivo comprimido zip desde https://github.com/allure-framework/allure-core/releases/latest .
  2. Descomprima el archivo en el directorio allure-commandline. Navegue al directorio bin.
  3. Utilice allure.bat para Windows y allure para otras plataformas Unix.

En la línea de comandos / terminal ahora simplemente ingrese la siguiente sintaxis y el informe se generará en la carpeta de informes de encanto

$ allure generate directory-with-results/

introduzca la descripción de la imagen aquí



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow