Os aplicativos da Web se tornaram essenciais para empresas que buscam maneiras avançadas de se conectar e servir seu público-alvo no mundo digital. Dada a importância dos aplicativos da web nas operações de negócios hoje em dia, independentemente do setor, eles devem ser amplamente testados para garantir que ofereçam experiências de usuário de ponta.
Os testes de automação aceleram o ciclo de vida de desenvolvimento de software. Além disso, ao adotar a abordagem Behavior Driven Development (BDD) para o desenvolvimento, diferentes partes interessadas, como desenvolvedores, QAs e equipes não tecnológicas, podem colaborar ativamente no projeto.
Os cenários são escritos com base no comportamento esperado do software e é testado para verificar se ele corresponde a esses cenários.
Fonte da imagem
Esses cenários são documentados usando uma linguagem específica de domínio, como o Gherkin. Em cada cenário de teste, construções de linguagem natural constituindo pequenas frases semelhantes ao inglês são usadas para descrever o comportamento e o resultado esperado de um aplicativo. Isso é feito usando uma ferramenta de software dedicada como Cucumber, que permite a execução de testes de aceitação automatizados escritos em Gherkin.
O que é Cucumber?
Cucumber é uma estrutura de teste de código aberto que suporta Behavior Driven Development para testes de automação de aplicativos da web. Os testes são escritos primeiro em uma forma de cenário simples que descreve o comportamento esperado do sistema da perspectiva do usuário.
Largamente usado para testes de aceitação, Cucumber é escrito em Ruby, enquanto os testes são escritos em Gherkin, uma linguagem não técnica e legível por humanos.
Teste de pepino e selênio: uma abordagem colaborativa
Enquanto o teste automatizado de selênio adiciona precisão e velocidade ao ciclo de desenvolvimento, o pepino adiciona uma vantagem extra para ele, tornando-o mais colaborativo para as partes interessadas da gestão não técnica. Amplamente benéfico para o teste de aceitação do usuário, em que os cenários de teste são amplamente orientados pelo comportamento, o Cucumber fortalece o teste de automação.
A estrutura do pepino
A estrutura do pepino consiste principalmente em três partes principais – arquivo de recurso, Definições de etapas e o arquivo do executor de teste.
Arquivo de recurso
Uma unidade autônoma ou uma única funcionalidade (como um login) para um projeto pode ser chamada de recurso. Cada um desses recursos terá cenários que devem ser testados usando Selenium integrado com Cucumber. Um arquivo que armazena dados sobre recursos, suas descrições e os cenários a serem testados é chamado de Arquivo de recurso.
Os testes de pepino são gravados nesses arquivos de recurso que são armazenados com a extensão – “.feature” . Um arquivo de recurso pode receber uma descrição para tornar a documentação mais legível.
Exemplo:
A função Login em um site
Nome do arquivo de recurso: userLogin .feature
Descrição: O usuário deve ser capaz de fazer o login inserindo o nome de usuário e a senha corretos nos campos corretos. O usuário deve ser direcionado à página inicial se o nome de usuário e a senha inseridos estiverem corretos. >
Palavras-chave como GIVEN, WHEN e THEN usadas para escrever o teste no Cucumber são chamadas de Anotações.
- O usuário GIVEN navega para a página de login abrindo o Firefox
- QUANDO o usuário insere o < nome de usuário > E < senha > valores
- ENTÃO o usuário é direcionado para t s homepage
Definições de etapas
Agora que os recursos foram escritos nos arquivos de recursos, o código do cenário relacionado deve ser executado. Para saber qual lote de código precisa ser executado para um determinado cenário, as Definições de Etapas entram em cena. Um arquivo de definições de etapas armazena os dados de mapeamento entre cada etapa de um cenário definido no arquivo de recurso e o código a ser executado.
As definições de etapa podem usar comandos Java e Selenium para as funções Java escritas para mapear um arquivo de recurso para o código.
Exemplo:
package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps{@Given("^user navigates to the login page by opening Firefox$")//Code to Open Firefox Browser and launch the login page of application to define the GIVEN step of the feature@When("^user enters correct username and password values$")//take inputs for username and password fields using find element by xpath. Put the correct username and password values as inputs to define the WHEN step of the feature@Then ("^user gets directed to homepage$”)//Direct to the Homepage of the application as a result of correct username and password inputs in the WHEN step. This would define the THEN step of the feature
Arquivo do executor de teste
Para executar o teste, um precisa de um arquivo do executor de teste, que é uma classe do executor de teste JUnit contendo o local da definição da etapa e os outros metadados primários necessários para executar o teste.
O arquivo do executor de teste usa a anotação @RunWith () do JUnit para execução de testes. Ele também usa a anotação @CucumberOptions para definir a localização dos arquivos de feições, definições de etapas, integrações de relatórios, etc.
Exemplo:
Classe de execução de teste no pacote cucumberTest, com os arquivos de feições na localização “src / test / Feature” e nos arquivos de definição de etapas na pasta “src / main / stepDefinition”.
Configurando a estrutura do Cucumber
Antes de explorar como o Cucumber funciona e como escrever um teste Cucumber Selenium, vamos primeiro descobrir como configurar o Cucumber.Instalar os pré-requisitos mencionados abaixo é tudo que um usuário precisa para começar com o Teste de automação do Cucumber.
Pré-requisitos para a configuração do Cucumber e Selenium
- Instalar Java
- Instalar Eclipse IDE para Java
- Instalar Maven
- Instalar Selenium Webdriver
- Instalar JUnit
- Instalar Cucumber
Como escrever um teste em Cucumber para Selenium Automation?
Levando adiante o cenário do recurso de login, vamos criar um teste de amostra em Cucumber. Este código executará o cenário de login descrito na seção Recurso e abrirá a página inicial do site ao inserir o nome de usuário e a senha corretos.
Práticas recomendadas em testes de pepino
Aqui estão alguns dos as melhores práticas em teste de pepino:
- As versões dos jars Cucumber-java, Cucumber-junit e Cucumber-core devem ser as mesmas para conectividade contínua.
- Adicionando um depois de ligar o código para capturar imagens quando o teste falha pode ajudar a diagnosticar o problema e depurá-lo.
- Use tags para organizar testes com base na definição de tag. Isso ajuda nos casos em que todos os testes não precisam ser executados todas as vezes. Esses testes podem ser marcados com tags e executados apenas quando necessário. Isso economiza tempo e capacidade de processamento do sistema e recursos.
- Como sempre, é importante executar os testes Cucumber Selenium em navegadores e dispositivos reais. O BrowserStack oferece um Cloud Selenium Grid de mais de 2.000 navegadores e dispositivos reais para fins de teste – ao vivo e automatizado. Basta se inscrever, escolher a combinação de dispositivo-navegador-sistema operacional necessária e começar a testar sites gratuitamente.
Executar testes Selenium gratuitamente
A automação de testes é absolutamente essencial para acompanhe as demandas crescentes de entrega mais rápida e qualidade ideal nos testadores. A estrutura Cucumber no Selenium permite que cenários de teste sejam escritos usando construções de linguagem natural que descrevem o comportamento esperado do software para um determinado cenário, tornando-o ideal para testes de aceitação do usuário.
Por último, teste de sites em um dispositivo real a nuvem é a única maneira de garantir a precisão total dos resultados. Portanto, sempre opte por testes de dispositivos reais para verificar de forma abrangente o desempenho do site, a compatibilidade entre navegadores e a qualidade da experiência do usuário que ele oferece.