Anexar printscreen ao Allure Report

Topic created · 28 Posts · 358 Visualizações
  • @allanpocosta você alterou alguma coisa no seu Runner?

  • Este post está deletado!
  • @marciolemos fiz algumas alterações para teste, mas voltei a deixar igual ao do seu projeto e meu Runner está assim:

    package TesteCucumber.Testes;
    
    import cucumber.api.CucumberOptions;
    import cucumber.api.junit.Cucumber;
    import org.junit.BeforeClass;
    import org.junit.runner.RunWith;
    
    @RunWith(Cucumber.class)
    @CucumberOptions(
            features = {"C:\\cmcorp\\src\\test\\java\\TesteCucumber\\Features\\Almoxarifado"},
            plugin = {"io.qameta.allure.cucumberjvm.AllureCucumberJvm" },
            glue = {"TesteCucumber.Steps.Almoxarifado"},
            tags = {/*"@CadProdutoComplete", */"@CadProdutoErro"}
            )
    
    public class CadProdutoTest {
        @BeforeClass
        public static void tearUp() {
        }
    }
    
  • @allanpocosta Então. Descobrimos que o problema tá no Hooks. Agora é fazer um troubleshooting pra achar o problema. Vou analisar mas um pouco os códigos que você postou aqui pra ver se descubro algo.

    Outra coisa é que seu features ={"C:\\cmcorp\\src\\test\\java\\TesteCucumber\\Features\\Almoxarifado"} tá com esse valor absoluto que não é legal. Pode ser só a partir de src que já deve funcionar.

  • @marciolemos disse em Anexar printscreen ao Allure Report:

    @allanpocosta Então. Descobrimos que o problema tá no Hooks. Agora é fazer um troubleshooting pra achar o problema. Vou analisar mas um pouco os códigos que você postou aqui pra ver se descubro algo.

    Outra coisa é que seu features ={"C:\\cmcorp\\src\\test\\java\\TesteCucumber\\Features\\Almoxarifado"} tá com esse valor absoluto que não é legal. Pode ser só a partir de src que já deve funcionar.

    Vou postar aqui como ficou todo o projeto atualizado. Pois tive que mudar meu ambiente do trabalho e os testes deste caso caso estou fazendo em casa.
    Hooks

    package TesteCucumber.Steps;
    
    import java.io.ByteArrayInputStream;
    import java.io.InputStream;
    import org.openqa.selenium.OutputType;
    import org.openqa.selenium.TakesScreenshot;
    import cucumber.api.Scenario;
    import cucumber.api.java.After;
    import io.qameta.allure.Allure;
    import suporte.WebLogin;
    
    public class Hooks {
    
        @After
        public void afterScenario(Scenario scenario) {
            byte[] screenshootBytes = ((TakesScreenshot) WebLogin.getDriver()).getScreenshotAs(OutputType.BYTES);
            InputStream screenshootStream = new ByteArrayInputStream(screenshootBytes);
            Allure.addAttachment(scenario.getName(), screenshootStream);
        }
    }
    

    Runner

    package TesteCucumber.Testes;
    
    import cucumber.api.CucumberOptions;
    import cucumber.api.junit.Cucumber;
    import org.junit.BeforeClass;
    import org.junit.runner.RunWith;
    
    @RunWith(Cucumber.class)
    @CucumberOptions(
            features = {"src\\test\\java\\TesteCucumber\\Features"},
            plugin = {"io.qameta.allure.cucumberjvm.AllureCucumberJvm" },
            glue = {"TesteCucumber.Steps"},
            tags = {"@CadProdutoErro"}
            )
    
    public class CadProdutoTest {
        @BeforeClass
        public static void tearUp() {
        }
    }
    

    Classe WebLogin

    import org.openqa.selenium.*;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import java.util.concurrent.TimeUnit;
    
    
    public class WebLogin {
    
        public static WebDriver navegador;
    
        public static WebDriver createChromeFatl() {
            WebDriver navegador = new ChromeDriver();
            navegador.manage().window().maximize();
            navegador.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
            navegador.get("https://tstfatl.cmflex.com.br/");
            navegador.findElement(By.id("login")).sendKeys("login");
            navegador.findElement(By.name("Password")).sendKeys("password");
            navegador.findElement(By.name("submit")).click();
            return navegador;
        }
        public static WebDriver getDriver(){
            return navegador;
        }
    
        public static void quitBrowser() {
            navegador.quit();
        }
    
  • @allanpocosta disse em Anexar printscreen ao Allure Report:

    import cucumber.api.CucumberOptions;
    import cucumber.api.junit.Cucumber;
    import org.junit.BeforeClass;
    import org.junit.runner.RunWith;

    Eu peguei seu código do Hooks, Runner e executei nos meus testes e foi sucesso. Gerou o relatorio com print e etc.

  • @marciovrl segue a classe de Step e a CadProdutoPage

    package TesteCucumber.Steps.Almoxarifado;
    
    import TesteCucumber.PagesQA.Almoxarifado.CadProdutoPage;
    import cucumber.api.java.pt.Dado;
    import cucumber.api.java.pt.Entao;
    import cucumber.api.java.pt.Quando;
    import org.openqa.selenium.WebDriver;
    import suporte.DSL;
    import suporte.WebLogin;
    
    public class CadProdutoStep {
    
        public DSL dsl;
        public static WebDriver navegador;
        public CadProdutoPage cadProdutoPage;
    
        public static WebDriver getDriver(){
            return navegador;
        }
    
        @Dado("^que estou logado no sistema$")
        public void que_estou_logado_no_sistema() throws Throwable {
            navegador = WebLogin.createChromeQA();
            dsl = new DSL(navegador);
            cadProdutoPage = new CadProdutoPage(navegador);
        }
    
        @Dado("^acesso a tela Cadastros Produtos Produtos Produto$")
        public void acesso_a_tela_Cadastros_Produtos_Produtos_Produto() throws Throwable {
            cadProdutoPage.acessarTela();
        }
    
        @Quando("^clico no botao incluir$")
        public void clico_no_botao_incluir() throws Throwable {
            cadProdutoPage.btIncluir();
        }
    
        @Quando("^clico no accordion Dados Principais$")
        public void clico_no_accordion_Dados_Principais() throws Throwable {
            cadProdutoPage.accordionDadosPrincipais();
        }
    
    package TesteCucumber.PagesQA.Almoxarifado;
    
    import org.junit.Assert;
    import org.junit.experimental.theories.Theories;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import suporte.DSL;
    import suporte.WebLogin;
    
    public class CadProdutoPage {
    
        public static WebDriver navegador;
        private DSL dsl;
    
        public CadProdutoPage(WebDriver navegador) {
            dsl = new DSL(navegador);
        }
    
        public static WebDriver getDriver(){
            return navegador;
        }
    
        public static void quitBrowser() {
            navegador.quit();
        }
    
        /*********************************** LINK *****************************************/
        public void acessarTela(){
            dsl.abrirLink("https://qamodelo.cmflex.com.br/Almoxarifado/Cadastros/CadProduto.aspx");
        }
    
        /*********************************** BOTOES *****************************************/
        public void btIncluir(){
            dsl.aguardarElementoPresente(By.id("ctl00_ctl00_placeHolderMain_ToolBarContentPlaceHolder_btnIncluir"));
            dsl.clicar(By.id("ctl00_ctl00_placeHolderMain_ToolBarContentPlaceHolder_btnIncluir"));
        }
    
        public void btBuscar(){
            dsl.aguardarElementoPresente(By.id("ctl00_ctl00_placeHolderMain_ToolBarContentPlaceHolder_btnIncluir"));
            dsl.clicar(By.id("ctl00_ctl00_placeHolderMain_ToolBarContentPlaceHolder_btnProcurar"));
        }
    
        public void btBuscarPopUp(){
            dsl.clicar(By.id("ctl00_ctl00_placeHolderMain_mainWebCad_autoSearchProduto_btnSearch"));
        }
    
        public void btImprimirEtiqueta(){
            dsl.aguardarElementoPresente(By.id("ctl00_ctl00_placeHolderMain_ToolBarContentPlaceHolder_btnIncluir"));
            dsl.clicar(By.id("ctl00_ctl00_placeHolderMain_ToolBarContentPlaceHolder_btnImprimirEtiqueta"));
        }
    
  • Problema resolvido!
    Após eu unificar minha classe DSL com a BasePage consegui executar e gerar o report com o print.
    Obrigado a todos pela ajuda!