Post

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...

By eliasnogueira
Olá Pessoal!Como último post sobre a Integração com o Selenium e ferramentas de Gestão de Teste e Gestão de Defeitos criei um projeto em Java que integra o Selenium, Mantis e Testlink.
É recomendado você ler os dois post’s abaixo:

Integração Selenium e Testlink
Integração Selenium e Mantis
Integração do Testlink com o MantisBugTracker

Se você já leu estes dois tutoriais, continue lendo este post…Este projeto de exemplo vai:

Executar um script de teste no Selenium RC

O script de teste irá falhar

Reportar um bug no Mantis anexando uma imagem do browser no momento do erro
Reportar o resultado do teste (que será com falha) ao Testlink
Associar o bug aberto ao Caso de Teste no Testlink

Abaixo será apresentado somente as modificações executadas para a criação de um exemplo único. Se você precisar de mais explicações sobre algum item da integração, por favor, consulte os post’s anteriores.
1. OrganizaçãoEste projeto foi dividido nos seguintes pacotes, conforme descrito abaixo:

com.blogspot.sembugs.mantis

ConnectMantis.java: Classe que faz a conexão com o Mantis

MantisReport.java: Classe que reporta o bug no Mantis

com.blogspot.sembugs.test

CasoTeste.java: Caso de Teste de exemplo

com.blogspot.sembugs.testlink

ResultadoExecucao.java: Classe que reporta o resultado da execução do teste

com.blogspot.sembugs.util

IConstantes.java: Interface com dados comuns as classes

2. ModificaçõesA seguir serão apresentados os trechos das classes que foram alterados e os devidos comentários sobre as alterações
MantisReport.javaNesta classe foram feitas as seguintes alterações:

Linha 1: Mudança do método, que agora tem como retorno um String.

Linha 8: Criado um atributo local do tipo long para retornar o ID do bug cadastrado

Linha 12: O atributo local é transformado em uma String e atribuido a variável bugID

Linha 22: Adicionado o retorno do método

PS: A classe abaixo está omitindo uma série de linhas de código, sendo apresentado apenas as mais relevantes perante as alterações.
1: public static String reporIssue(String sumario, String descricao, String categoria, String informacaoAdicional, String evidencia, String nomeArquivo) { 2: IMCSession sessao = null; 3: String arquivo = nomeArquivo + “.png”; 4: String bugID = null; 5: 6: try { 7: // submete o bug no Mantis 8: long id = sessao.addIssue(issue); 9: sessao.addIssueAttachment(id, arquivo, “image/png”, Base64.decodeBase64(evidencia)); 10: 11: // retorna o ID do bug como String, para fazer o relacionanmento do bug com o Testlink 12: bugID = String.valueOf(id); 13: 14: } catch (MalformedURLException e) { 15: System.err.println(“Erro na URL de acesso ao Mantis”); 16: e.printStackTrace(); 17: } catch (MCException e) { 18: System.err.println(“Erro na comunicacao com o Mantis”); 19: e.printStackTrace(); 20: } 21: 22: return bugID; 23: } 24: }
ResultadoExecucao.javaNesta classe foram feitas as seguintes alterações:

Linha 1: Foi adicionado um novo parâmetro para a utilização do método: Integer bugID. É esperado que seja passado o ID do bug cadastrado para fazer a associação com o Testlink, mas não é obrigatório

Linha 5: Um verificação é feita para ver se o ID do bug será passado. Se sim há uma séria de atributos que são obtidos para que o resultado de execução do caso de teste contenha o bug associado. Isso foi adicionado porque o método da API do Testlink tem uma assinatura (parâmetros) diferente do do método que não associa o bug

Linhas 7, 8, 9 e 10: Todos os atributos locais necessários para a associação do bug no resultado do caso de teste.

Linha 12: Envio dos dados de resultado do teste ao Testlink utilizando o ID do bug para associação.

Linhas 13 e 14: Se o bug não for passado (for null) o envio do resultado de execução para o Testlink utiliza outro método para esta tarefa.

1: public static void reportTestCaseResult(String projetoTeste, String planoTeste, String casoTeste, String nomeBuild, String nota, String resultado, Integer bugID) throws TestLinkAPIException { 2: 3: TestLinkAPIClient testlinkAPIClient = new TestLinkAPIClient(DEVKEY, URL); 4: 5: if (bugID != null) { 6: 7: Integer projectID = TestLinkAPIHelper.getProjectID(testlinkAPIClient, PROJETO_TESTLINK); 8: Integer testPlanID = TestLinkAPIHelper.getPlanID(testlinkAPIClient, projectID, PLANO); 9: Integer testCaseID = TestLinkAPIHelper.getTestCaseID(testlinkAPIClient, projectID, CASO_TESTE1); 10: Integer buildID = TestLinkAPIHelper.getBuildID(testlinkAPIClient, testPlanID, nomeBuild); 11: 12: testlinkAPIClient.reportTestCaseResult(testPlanID, testCaseID, buildID, bugID, false, nota, resultado); 13: } else { 14: testlinkAPIClient.reportTestCaseResult(projetoTeste, planoTeste, casoTeste, nomeBuild, nota, resultado); 15: } 16: }
CasoTeste.javaEsta classe é a mesma utilizado nos outros dois tutoriais, porém com nome diferente.Basicamente foi alterado apenas o bloco finnally do script.

Linha 3: Foi adicionado o método para o report do bug, atribuindo para uma variável o ID do bug que foi adicionado.

Linha 5: Adicionado o novo método com o parâmetro do bugID, para que o bug seja associado ao resultado de execução do caso de teste.

PS: A classe abaixo está omitindo uma série de linhas de código, sendo apresentado apenas as mais relevantes perante as alterações.
1: } finally { 2: if (erro) { 3: String bugID = MantisReport.reporIssue(“Erro no Caso de Teste de Pesquisa de Livros”, “Erro em alguma validacao ou validacao”, “Automacao”, msgErro, evidenciaErro, “CasoTesteMantisNOK”); 4: 5: ResultadoExecucao.reportTestCaseResult(PROJETO_TESTLINK, PLANO, CASO_TESTE1, BUILD, msgErro, resultado, Integer.parseInt(bugID)); 6: 7: CasoTeste.fail(msgErro); 8: } 9: }
3. Baixando o código-fonteO projeto completo e funcional pode ser baixado no link abaixo (18 MB):
http://www.eliasnogueira.com/arquivos_blog/selenium/integracao/mantis_testlink/selenium-integration.zip
4. Verificando online o resultado de execuçãoSe você baixar o projeto e já executá-lo ( ) poderá ver que os resultados no Testlink e Mantis serão colocados em ambas aplicações que tenho online.
Para acessar ambos, utilize os seguintes dados de login:

Usuário: convidado

Senha: convidado

Dentro do Mantis, que está acessível pela URL abaixo, você verá que o bug será reportado contendo os dados que passamos para o método utilizado na classe CasoTeste.java. Atente-se para o ID do bug e o horário de criação:
http://www.eliasnogueira.com/arquivos_blog/mantisbt-1.2.3/

Agora no Testlink, que está acessível pela URL abaixo, veremos que o resultado reportado foi com falha, está dentro do mesmo horário de criação do bug e tem o bug associado, conforme figura.

Bom pessoal, por enquanto é isso! Abraço a todos!

Source: http://eliasnogueira.com/projeto-de-integracao-selenium-x-mantis-x-testlink/

Category: automacao, mantis, selenium

Você também pode querer ler

Comments are off for this post.