Este é um guia rápido para você utilizar o Selenium e o SimpleTest em testes de aceitação automatizados.
Selenium é uma ferramenta para testar aplicações web pelo navegador de forma automatizada, exatamente como o usuário faria.
SimpleTest é uma ferramenta para estrutura de testes unitários automáticos, seguindo o padrão XUnit.
Suponho que você já tenha instalado um servidor WEB com PHP e PEAR rodando. Além de ter uma JRE configurada.
Vamos começar instalando o Selenium
Baixe o Selenium Remote Control no endereço http://www.openqa.org/selenium-rc/ e o descompacte.
Terá uma pasta selenium-server-0.9.2 (esta é a versão que peguei), eu a copiei próxima da raiz, mas você pode deixar aonde quiser.
O selenium-server.jar é o nosso principal arquivo, ele é que interpreta os comandos e aciona o navegador.
Para acionar o servidor basta usar o comando java -jar selenium-server.jar
no prompt de comando.
Uma dica importante:
Ao iniciar o servidor pela primeira vez irá aparecer à janela do Firewall do Windows, perguntando se deseja manter o aplicativo bloqueado, permita o acesso. Caso tenha escolhido outra opção, encerre o java/javaw.exe no Gerenciador de Arquivos do Windows e inicie o selenium-server novamente e desse vez permita o acesso.
Beleza, agora que o selenium já está funcionado você pode testa-lo pelo prompt mesmo, encerre com Ctrl+C
e inicie novamente agora em modo interativo com java -jar selenium-server.jar -interactive
. O modo interativo permite que você envie comandos a serem interpretados pelo navegador.
Inicia uma sessão de navegador do Firefox, se preferir Internet Explorer use “iexplore”.cmd=getNewBrowserSession&1=*firefox&2=http://www.google.com
O prompt retorna a sessão em que o selenium vai conversar com o navegador. No meu caso 260113, substitua as chamadas daqui para frente pelo nº que aparecer aqui.Got result: OK,260113 on session 260113
Abre o navegador com o endereço indicado.cmd=open&1=http://www.google.com/webhp&sessionId=260113
Escreve a frase ola mundo na caixa de texto.cmd=type&1=q&2=ola mundo&sessionId=260113
Clica no botão de pesquisacmd=click&1=btnG&sessionId=260113
Pega o título da páginacmd=getTitle&sessionId=260113
O resultado é o titulo da página Got result: OK,ola mundo - Google Search on session 260113
Encerra a sessão e fecha o navegadorcmd=testComplete&sessionId=260113
Durante a execução dos comandos você pode reparar que uma janela do navegador é aberta e obedece aos comandos do servidor.
Nessa hora você me pergunta:
Ótimo, posso fazer o que fazia no navegador por meio de uma programinha e checar os resultados!!! Mas não tem um jeito mais fácil de fazer isso?
Claro que sim, vamos usar o selenium-cliente PHP e o SimpleTest para isso.
Copie a pasta selenium-php-client-driver-0.9.2 para o seu diretório www. Lá está o cliente selenium para php. Já temos um servidor para atender aos testes e agora mão a obra.
Corrija os caminhos do require_once antes de testar. Se precisar use a função set_include_path.
require_once"simpletest/simpletest.php";
require_once"simpletest/autorun.php";
require_once "Testing/Selenium.php";
class GoogleTest extends UnitTestCase{
private $selenium;
/**
* Metodo é executado antes de cada teste.
* Testing_Selenium e inicia a sessão.
*/
public function setUp(){
$this->selenium = new Testing_Selenium("*firefox", "http://www.google.com");
$this->selenium->start();
}
/**
* Metodo é executado após a execução de cada teste.
* Encerra a sessão.
*/
public function tearDown(){
$this->selenium->stop();
}
/**
* Testa uma busca no google.
* É aberto o navegador.
* Escreve a frase ola mundo na caixa de texto.
* Clica no botão de pesquisa.
* Aguarda o carregamento ou 10s.
* testa se o padrão /ola mundo/ está no titulo da página.
*/
public function testGoogle(){
$this->selenium->open("/");
$this->selenium->type("q", "ola mundo");
$this->selenium->click("btnG");
$this->selenium->waitForPageToLoad(10000);
$this->assertPattern("/ola mundo/",$this->selenium->getTitle());
}
}
?>
3 comentários:
olá, parabens pelo post mas estou com uma duvida
criei este arquivo para testes pelo selenium ide, exportei para php:
http://uzeh.webcindario.com/muaz.rar
tenho o selenium remote instalado
baixei o simple teste...
mas como faço para rodar os teste em php
o simpletest faz isso ou possoo fazer pelo selenium
Muito legal o seu post!
Muito legal o seu post!
Postar um comentário