Como criar uma Suite de testes para Selenium RC

2 respostas
C

Eae meu povo, tudo certo ?

Bom, vamos la…

To fazendo alguns testes de regressão utilizando Selenium RC e Java, via Eclipse.

Bom, o cenário:

Aplicação feita em jsf, trabalhando com seções.

Problema:

Várias builds são aplicadas, resultando na necessidade de realizar testes de regressão antes de colocar em Produção.

Solução sugerida:

Automatizar os cenários.

Blz… o que eu tenho ?

Automatizei diversos cenários, modularizei os testes, e agora eu tenho, diversos scripts para realizar as diversas ações comuns a todos os outros, como acessar aplicação, realizar login, logoff e etc…
tenho outra gama de scripts responsáveis pela execução dos cenários em si…

Vamos supor, 1 script pra cadastro de usuário, 1 para consulta de usuário, 1 para alteração e 1 para exclusão. Tendo também 1 script para inicializar o sistema, 1 para realizar login, 1 para acessar o menu e 1 para realizar logoff.

Total: 8 scripts.

Gostaria de criar uma suite de testes que executasse os scripts para cadastro, consulta, alteração e exclusão de usuário, pois os outros scripts (comum a todos) são chamados por cada script de funcionalidade…

criei uma suite de testes assim:

import junit.framework.Test;
import junit.framework.TestSuite;

public class TestSuiteManterUsuario {

	public static Test suite() {
		TestSuite suite = new TestSuite();
		suite.addTestSuite(CadastrarUsuario.class);
		suite.addTestSuite(ConsultarUsuario.class);
		return suite;
	}

	public static void main(String[] args) {
		junit.textui.TestRunner.run(suite());
	}
}

Porém ao executar essa suite, ele executa o primeiro script com sucesso, porém ao tentar iniciar a execução do segundo script ele da o seguinte erro:
[color=red]Failed to start: SocketListener2@0.0.0.0:4444
Exception running 'open 'command on session null
java.lang.NullPointerException: sessionId should not be null; has this session been started yet?
[/color]

Sei que isso significa que o servidor do selenium está rodando e escutando na porta 4444, e ele tenta rodar novamente o servidor e da esse erro, porém, ao término de cada script, eu finalizo os testes e o servidor, com o seguinte comando:

SeleniumServer server = new SeleniumServer();
server.stop();
selenium.stop();

Então, eu estou finalizando o servidor antes de iniciar a execução do segundo script, mas aparentemente isso não ta funcionando pois o erro acontece.

Bom, acho que expliquei bastante e deu pra entender, alguém consegue me ajudar ?

Qualquer informação adcional que possa ajudar é só solicitar que eu posto.

Valeu !!!

2 Respostas

C

E aí meu povo… ninguém sabe nada sobre isso ?

K

Fala ae cara!

Tbm estou tentando usar o selenium aqui… será que vc está encerrando corretamente a execução do primeiro servidor. Ou seja, para encerrar o servidor você deveria utilizar o mesmo objeto SeleniumServer, que vc usou para iniciá-lo. Da forma como mostrou vc está instanciando uma nova instância do servidor quando, na verdade, deveria usar a mesma instância (server) que usou quando ativou o método start().

Não sei como o selenium trata suas instâncias, mas parece que não está deixando criar uma nova caso outra já esteja criada.

Sugestão: execute no método setUp() do TestCase a inicialização do servidor e no tearDown() a sua finalização (utilizando a mesma instância do servidor em ambos os métodos).

Espero ter ajudado!
Kallás

Criado 4 de novembro de 2010
Ultima resposta 16 de nov. de 2010
Respostas 2
Participantes 2