Como capturar um screenshot no Selenium WebDriver

Capturar um screenshot é uma das ações frequentemente desejadas, quando automatizamos um teste com selenium.

A aplicação do screenshot, pode ser útil de diferentes maneiras, como provendo evidências de um problema encontrado ou servindo para análise e comparação do estado da interface, etc.

Abaixo, disponibilizo um exemplo, extremamente simples, utilizando o Selenium WebDriver com Java.

import java.io.File;
import java.io.IOException;
import java.util.Date;

import org.apache.commons.io.FileUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class SimpleScreenshot {
	private static WebDriver driver;

	/**
	 * Inicialização do driver do firefox
	 */
	@BeforeClass
	public static void beforeClass() {
		driver = new FirefoxDriver();

	}

	/**
	 * Navega para url do bytes don't bite
	 * Captura o Screenshot
	 */
	@Test
	public void testScreenshot() {
		driver.get("http://www.bytesdontbite.com");
		takeScreenshot("teste");
	}

	/**
	 * Método para capturar screenshot
	 * @param fileName - Nome do arquivo
	 */
	public static void takeScreenshot(String fileName){
		File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
		Date data = new Date();
	    try {
			FileUtils.copyFile(scrFile, new File("D:\\SeleniumScreenShots\\"+fileName+ data.getTime()+".jpeg"),true);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * Encerra o driver
	 */
	@AfterClass
	public static void afterClass() {
		driver.quit();
	}

}

Como pudemos ver no código acima, a única coisa que precisamos fazer é implementar o método takesScreenshot, e utilizá-lo nos pontos em que julgarmos necessário. No exemplo, simplesmente iniciamos um FirefoxDriver e o nosso “teste” se resumiu a navegar para a url do bytes don’t bite e em seguida chamar a captura do screenshot.
Ainda não conhece o Selenium?
Uma das mais utilizadas ferramentas para automação de testes em aplicações web. Permite interagir com o navegador e simular as operações comumente encontradas nas páginas web.

Deseja conhecer mais sobre o Selenium?

— UPDATE —

Inscrições abertas

O curso de Automação de Testes Para Web com Selenium está disponível na modalidade de Ensino à distância. Contaremos com um material de vídeo-aulas, apostilas e exercícios, além do acompanhamento de um professor/tutor.

Valor: R$250,00 (Pode ser parcelado no cartão de crédito)

promo_banner

Copa do Mundo de Testes de Software – Inscrições Abertas

No mês passado apresentamos a Copa do Mundo de Testes aqui no blog. E hoje, recebi a notícia que as inscrições para a primeira copa do mundo de testes de software estão oficialmente abertas.  Abaixo, segue o resumo das principais informações.

Equipes:

Podem possuir de 1 a 4 integrantes. Não há limite de equipes por empresa.

Fase de Qualificação Continental:

Na primeira etapa, as disputas serão realizadas online. E apenas uma equipe será classificada por continente.

Fase Final:

Realizada presencialmente, durante o evento Agile Testing Days.

Critérios de Pontuação:

Os critérios não foram modificados, mantendo as informações do post anterior:

Diferentes aspectos levados em consideração, como: melhor bug report, melhor report de testes, bug mais valioso, etc.

O foco principal será o aspecto funcional de determinadas aplicações indicadas pelos avaliadores no início de cada etapa, podendo existir um tempo adicional alocado para aspectos não-funcionais.

O tempo para validação da aplicação sugerida será de aproximadamente 3 horas, podendo haver tempo adicional para aspectos não-funcionais.

Premiação:

Na etapa de classificação os vencedores continentais receberão:

– Entradas para os 3 dias do Agile Testing Days

– Passagens aéreas

– Shuttle aeroporto/hotel

– Hospedagem de 5 diárias

– Cópias autografadas do novo livro de Lisa Crispin e Janet Gregory 

Por fim, os grandes vencedores da etapa final receberão:

2014-03-11_0805

Link – Episódio de True Detective derruba HBO GO

Link – Episódio de True Detective derruba HBO GO

Sabemos ou pelo menos deveríamos saber, da importância dos testes de performance quando tratamos de aplicações Web. O tema que inclusive já abordamos aqui (Entendendo os testes de performance) é frequentemente deixado em segundo plano, o que acaba causando problemas graves, como o que vi nas notícias publicadas ontem e hoje sobre o HBO GO.

HBO GO Crashes

É impressionante a quantidade de aplicações web disponíveis, que continuam decepcionando seus usuários, pois de nada adianta estarem “funcionalmente” corretas se a medida que a quantidade de acessos cresce o serviço deixa de responder a tempo ou mesmo não responde. No exemplo do link sobre a HBO GO, como pode um serviço que custa o dobro do Netflix nos Estados Unidos conseguir apresentar tal nível de qualidade aos consumidores? Quanto irá custar a HBO essa publicidade negativa?