automation testing using cucumber tool
No último tutorial do Selenium, apresentamos a você Grade de selênio qual é para execução de teste distribuído ambiente para acelerar a execução de uma passagem de teste .
Agora, no final desta série abrangente de treinamento Selenium, estamos aprendendo Teste de selênio e conceitos relacionados.
Neste e no próximo tutorial, iremos apresentar a você o Pepino - a Estrutura do Behavior Driven Development (BDD) que é usada com Selenium para realizar testes de aceitação.
O que você aprenderá:
- Introdução ao pepino
- Noções básicas de pepino
- Configuração do projeto de pepino:
- Conclusão
- Leitura recomendada
Introdução ao pepino
Pepino é uma ferramenta baseada no framework Behavior Driven Development (BDD) que é usado para escrever testes de aceitação para a aplicação web. Ele permite a automação da validação funcional em formato facilmente legível e compreensível (como o inglês simples) para analistas de negócios, desenvolvedores, testadores, etc.
Os arquivos de características do pepino podem servir como um bom documento para todos. Existem muitas outras ferramentas, como JBehave, que também oferecem suporte ao framework BDD. Inicialmente, Cucumber foi implementado em Ruby e depois estendido para o framework Java. Ambas as ferramentas suportam JUnit nativo.
O Behavior Driven Development é uma extensão do Test Driven Development e é usado para testar o sistema em vez de testar a parte específica do código. Discutiremos mais o BDD e o estilo de escrever testes de BDD.
Cucumber pode ser usado junto com Selenium, Watir e Capybara etc. Cucumber suporta muitas outras linguagens como Perl, PHP, Python, Net etc. Neste tutorial, vamos nos concentrar em Cucumber com Java como linguagem.
Noções básicas de pepino
Para entender o pepino, precisamos conhecer todas as características do pepino e seu uso.
transformar char em int c ++
# 1) Arquivos de recursos:
Os arquivos de características são a parte essencial do pepino, que é usado para escrever etapas de automação de teste ou testes de aceitação. Isso pode ser usado como o documento ativo. As etapas são as especificações do aplicativo. Todos os arquivos de recursos terminam com a extensão .feature.
Arquivo de amostra de recurso:
Recurso : Recurso de funcionalidade de login
Para garantir que a funcionalidade de login funcione,
Quero fazer o teste do pepino para verificar se está funcionando
Cenário : Funcionalidade de login
Dado o usuário navega para SOFTWARETETINGHELP.COM
Quando o usuário faz login usando o nome de usuário como “USUÁRIO” e a senha “SENHA”
Então login deve ser bem sucedido
Cenário : Funcionalidade de login
Dado o usuário navega para SOFTWARETETINGHELP.COM
Quando o usuário faz login usando o nome de usuário como “USER1” e a senha “PASSWORD1”
Então mensagem de erro deve ser lançada
# 2) Característica:
T Isso fornece informações sobre a funcionalidade de negócios de alto nível (consulte o exemplo anterior) e a finalidade do aplicativo em teste. Todos devem ser capazes de entender a intenção do arquivo de recurso lendo a primeira etapa do recurso. Esta parte é basicamente resumida.
# 3) Cenário:
Basicamente, um cenário representa uma funcionalidade particular que está sendo testada. Ao ver o cenário, o usuário deve ser capaz de entender a intenção por trás do cenário e do que se trata o teste. Cada cenário deve seguir o dado, quando e então o formato. Essa linguagem é chamada de “pepino”.
- Dado: Conforme mencionado acima, o dado especifica as pré-condições. É basicamente um estado conhecido.
- Quando : Isso é usado quando alguma ação deve ser executada. Como no exemplo acima, vimos que quando o usuário tenta fazer login usando nome de usuário e senha, isso se torna uma ação .
- Então: O resultado ou resultado esperado deve ser colocado aqui. Por exemplo: verifique se o login foi bem-sucedido, a navegação na página foi bem-sucedida.
- Fundo: Sempre que qualquer etapa é necessária para executar em cada cenário, essas etapas devem ser colocadas em segundo plano. Por exemplo: se um usuário precisar limpar o banco de dados antes de cada cenário, essas etapas podem ser colocadas em segundo plano.
- E : E é usado para combinar dois ou mais o mesmo tipo de ação.
Exemplo:
Recurso : Recurso de funcionalidade de login
Cenário : Funcionalidade de login
Dado o usuário navega para SOFTWARETETINGHELP.COM
Quando o usuário faz login usando o nome de usuário como “USUÁRIO”
E senha como “senha”
Então login deve ser bem sucedido
E A página inicial deve ser exibida
software de recuperação de dados grátis windows 10
Exemplo de fundo:
Fundo:
Dado usuário conectado como administrador de banco de dados
E todos os valores de lixo são apagados
# 4) Esboço do cenário:
Os contornos do cenário são usados quando o mesmo teste deve ser executado com conjuntos de dados diferentes. Vamos pegar o mesmo exemplo. Temos que testar a funcionalidade de login com vários conjuntos diferentes de nome de usuário e senha.
Recurso : Recurso de funcionalidade de login
Para garantir que a funcionalidade de login funcione,
Quero fazer o teste do pepino para verificar se está funcionando
Esboço do cenário : Funcionalidade de login
Dado o usuário navega para SOFTWARETESTINGHELP.COM
Quando o usuário faz login usando o nome de usuário como< nome de usuário > e senha< senha >
Então login deve ser bem sucedido
Exemplos:
| nome de usuário | senha |
| Tom | senha1 |
| Harry | senha2 |
| Jerry | senha3 |
Observação:
- Conforme mostrado no exemplo acima, os nomes das colunas são passados como um parâmetro para Quando demonstração.
- No lugar do cenário, você deve usar o esboço do cenário.
- Os exemplos são usados para passar argumentos diferentes no formato tabular. Tubos verticais são usados para separar duas colunas diferentes. Um exemplo pode conter muitas colunas diferentes.
# 5) Tags:
Cucumber, por padrão, executa todos os cenários em todos os arquivos de recursos. Em projetos de tempo real, pode haver centenas de arquivos de recursos que não precisam ser executados o tempo todo.
Por exemplo : Arquivos de recursos relacionados ao teste de fumaça não precisam ser executados o tempo todo. Portanto, se você mencionar uma tag como sem fumaça em cada arquivo de recurso que está relacionado ao teste de fumaça e executa o teste do pepino com a tag @SmokeTest. O Cucumber executará apenas os arquivos de recursos específicos para determinadas tags. Siga o exemplo abaixo. Você pode especificar várias tags em um arquivo de recurso.
Exemplo de uso de tags únicas:
@Teste de fumaça
Recurso : Recurso de funcionalidade de login
Para garantir que a funcionalidade de login funcione,
Quero fazer o teste do pepino para verificar se está funcionando
Esboço do cenário : Funcionalidade de login
Dado o usuário navega para SOFTWARETESTINGHELP.COM
Quando o usuário faz login usando o nome de usuário como< nome de usuário > e senha< senha >
Então login deve ser bem sucedido
Exemplos:
| nome de usuário | senha |
| Tom | senha1 |
| Harry | senha2 |
| Jerry | senha3 |
Exemplo de uso de várias tags:
Conforme mostrado no exemplo abaixo, o mesmo arquivo de recurso pode ser usado para cenários de teste de fumaça, bem como para cenário de teste de login. Quando você pretende executar seu script para um teste de fumaça, use @SmokeTest. Da mesma forma, quando você quiser que seu script seja executado para teste de login, use a tag @LoginTest.
Qualquer número de tags pode ser mencionado para um arquivo de característica, bem como para o cenário.
@SmokeTest @LoginTest
Recurso : Recurso de funcionalidade de login
Para garantir que a funcionalidade de login funcione,
Quero fazer o teste do pepino para verificar se está funcionando
Esboço do cenário : Funcionalidade de login
Dado o usuário navega para SOFTWARETETINGHELP.COM
Quando o usuário faz login usando o nome de usuário e a senha
Então login deve ser bem sucedido
Exemplos:
| nome de usuário | senha |
| Tom | senha1 |
| Harry | senha2 |
| Jerry | senha3 |
Da mesma forma, você pode especificar tags para executar o cenário específico em um arquivo de recurso. Verifique o exemplo abaixo para executar o cenário específico.
Recurso : Recurso de funcionalidade de login
Para garantir que a funcionalidade de login funcione,
Quero fazer o teste do pepino para verificar se está funcionando
@positiveScenario
Cenário : Funcionalidade de login
Dado o usuário navega para SOFTWARETETINGHELP.COM
Quando o usuário faz login usando o nome de usuário como “USUÁRIO” e a senha “SENHA”
Então login deve ser bem sucedido
@negaviveScenario
Cenário : Funcionalidade de login
Dado o usuário navega para SOFTWARETETINGHELP.COM
Quando o usuário faz login usando o nome de usuário como “USER1” e a senha “PASSWORD1”
Então mensagem de erro deve lançar
# 6) JUnit Runner:
o que é um arquivo .7z
Para executar o arquivo de recurso específico, o cucumber usa o JUnit Runner padrão e especifica as tags em @Cucumber. Opções Várias tags podem ser fornecidas usando vírgulas separadas. Aqui você pode especificar o caminho do relatório e o tipo de relatório que deseja gerar.
Exemplo de Junit Runner:
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Classe pública JUnitRunner {} Da mesma forma, você pode dar instruções ao pepino para executar várias tags. O exemplo abaixo ilustra como usar várias tags no pepino para executar diferentes cenários.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { } # 7) Relatório de pepino:
Cucumber gera seu próprio formato HTML. No entanto, relatórios melhores podem ser feitos usando Jenkins ou ferramenta de bambu. Os detalhes dos relatórios são abordados no próximo tópico, Pepino.
Configuração do projeto de pepino:
A explicação detalhada da configuração do projeto do pepino está disponível separadamente no próximo tutorial. Consulte o Cucumber Tutorial Part2 para obter mais informações sobre a configuração do projeto. Lembre-se de que não há nenhuma instalação de software extra necessária para o Pepino.
Implementação do arquivo de recurso:
Precisamos implementar essas etapas em Java para testar os arquivos de recursos. É necessário criar uma classe que contenha as instruções fornecidas, when e then. O pepino usa suas anotações e todas as etapas são incorporadas nessas anotações (fornecidas, quando, então). Cada frase começa com “^” para que o pepino entenda o início da etapa. Da mesma forma, cada etapa termina com “$”. O usuário pode usar expressões regulares para passar dados de teste diferentes. As expressões regulares obtêm dados das etapas do recurso e passam para as definições das etapas. A ordem dos parâmetros depende de como eles são passados do arquivo de feições. Consulte o próximo tutorial para configuração do projeto e mapeamento entre arquivos de recursos e classes Java.
Exemplo:
O exemplo abaixo é para ilustrar como os arquivos de recurso podem ser implementados.
Neste exemplo, não usamos nenhuma API de selênio. Isso é apenas para mostrar como o pepino funciona como uma estrutura independente. Siga o próximo tutorial para integração de selênio com pepino.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } } Quando você executa a classe de corredor do pepino, o pepino começa a ler as etapas do arquivo de recursos. Por exemplo, quando você executa @smokeTest, o pepino lerá Recurso passo e Dado uma declaração de cenário . Assim que o pepino encontrar Dada a declaração, o mesmo Dado declaração será pesquisada para seus arquivos java. Se a mesma etapa for encontrada no arquivo java, o cucumber executa a função especificada para a mesma etapa, caso contrário, o cucumber irá pular a etapa.
Conclusão
Neste tutorial, cobrimos os recursos da ferramenta pepino e seu uso em cenário de tempo real.
Cucumber é a ferramenta favorita para muitos projetos, pois é fácil de entender, legível e contém funcionalidades de negócios.
No próximo capítulo , vamos cobrir como configurar um projeto pepino - java e como integrar o Selenium WebDriver com o pepino.
Leitura recomendada
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- 30+ Melhores Tutoriais de Selênio: Aprenda Selênio com Exemplos Reais
- Tutorial do Selenium Grid: configuração e exemplo de teste entre navegadores
- Spock para integração e testes funcionais com selênio
- Uso da ferramenta Maven Build Automation e configuração do projeto Maven para Selenium - Selenium Tutorial # 24
- Introdução ao Selenium WebDriver - Selenium Tutorial # 8
- Tutoriais detalhados do Eclipse para iniciantes
- Tutorial da ferramenta de teste de acessibilidade WAVE