geb tutorial browser automation testing using geb tool
Geb (pronuncia-se “jeb”) é a resposta aos desafios da automação do navegador. É uma ferramenta muito eficaz para realizar testes de automação na web.
O Geb surgiu da necessidade de tornar a automação do navegador (inicialmente para testes da web) menos complicada, descomplicada e mais eficiente. Pode ser utilizado para programação, extração de dados da web e automatização de tarefas manuais da web. Além disso, Geb é um navegador cruzado ferramenta para testes de automação.
Geb funciona como uma ferramenta orientada para o desenvolvedor para automatizar a colaboração entre navegadores da web e conteúdo da web. Ele roda o WebDriver na linguagem Groovy.
A beleza da ferramenta de teste Geb é que ela combina os melhores recursos da linguagem de programação Groovy, jQuery, WebDriver e Modelagem de Objeto de Página para fornecer inspeção, seleção e interação na web poderosa, robusta e dinâmica.
O que torna o Geb único quando comparado a outros ferramentas de teste de automação disponível no mercado é a sua sintaxe. É semelhante ao jQuery que normalmente é usado para consultar as páginas HTML facilmente. Em segundo lugar, ele integrou o suporte para o padrão Page Object.
Geb fornece grande ajuda para testes funcionais da web através da integração com algumas plataformas de teste amplamente utilizadas e comuns, incluindo Spock , Grails, JUnit , Cucumber-JVM , TestNG, etc. Veremos como o Geb pode ser integrado ao framework Grails na parte posterior deste artigo.
O que você aprenderá:
- Usos Práticos
- Vantagens
- Pré-requisitos
- Começando
- Aprenda com o exemplo
- Teste de validação de banco de dados por meio de script Geb:
- Alguns métodos úteis no Geb
- Desvantagens desta ferramenta
- Mais recursos:
- Conclusão
- Leitura recomendada
Usos Práticos
Conforme já discutido na introdução deste tutorial do Geb, ele pode ser usado:
- Como uma ferramenta de teste em vários navegadores, como Chrome, Firefox, Internet Explorer, etc. (O mesmo script de automação pode ser executado em diferentes navegadores para realizar o teste da web de seu aplicativo.)
- Para automatizar a aceitação do usuário e casos de teste funcional.
- Para automatizar cenários de teste criados para testes funcionais ou da web de qualquer aplicativo.
- Para cobrir o teste de ponta a ponta, incluindo a validação de IU (Interface do Usuário) e a validação de BD (Banco de Dados).
- Como uma ferramenta do desenvolvedor para automatizar a interação entre um navegador da web e conteúdo da web.
Vantagens
- Geb é uma ferramenta gratuita de código aberto. Ele é licenciado sob a Licença Apache, Versão 2.0.
- Fácil e simples de automatizar os testes da web.
- Os objetos de página de Geb e o Groovy DSL tornam os testes legíveis a ponto de quase parecerem inglês simples.
- Executa os testes rapidamente e, portanto, economiza tempo e custo de teste.
- Compatível com diferentes navegadores como IE, Firefox, Chrome e HTMLUnit.
- Ele executa os testes no navegador real. É como se estivesse testando no ambiente real - aquele que o usuário veria.
- Isso torna o teste de regressão fácil. Você pode executar os casos de teste automatizados do Geb para verificar se alguma funcionalidade existente está quebrando após uma correção ou alteração no aplicativo.
- Ao usar o Geb para testes de automação, alterações mínimas no código de teste são necessárias se houver alguma alteração na interface do usuário em seu aplicativo. Portanto, ele reduz o esforço e a duplicação de código.
- Ajuda a 360 graus (ou máximo) de cobertura de teste dentro de um único script.
Pré-requisitos
Antes de começar, precisamos baixar e instalar o software. No repositório central Maven, o Geb está disponível como um único jar do Geb-core. Clique aqui para instalá-lo em sua máquina.
Você precisará do jar Geb-core acima, de uma implementação de driver da web e do jar de suporte de selênio para fazer o Geb funcionar em sua máquina.
Consulte a seção de instalação e uso abaixo do livro do Geb para instalar a ferramenta e colocá-la em execução => Manual de instalação e uso do Geb .
Começando
Como já discutido, Geb pode ser integrado com diferentes frameworks de teste.
Dependendo da estrutura escolhida, você precisará instalar o plugin relacionado.
Por exemplo : Grails ( Grails é uma estrutura muito famosa para aplicativos da web) para escrever scripts de teste de automação e automatizar os cenários de teste. Se você deseja usar o Geb para o seu teste funcional Grails, você pode instalar o plugin relacionado aqui plugin grails-geb . Este plugin lida com o baseUrl e reportsDir itens de configuração.
Aprenda com o exemplo
Deixe-me agora mostrar como escrever um script Geb para automatizar um cenário de teste.
Faça o seguinte cenário de teste:
| ID do cenário de teste | Softwaretestinghelp-1 | Id de caso de teste | Softwaretestinghelp -1A |
| Saída | |||
| Descrição do Caso de Teste | Verifique a página do Softwaretestinghelp.com através do mecanismo de busca | Status do script de automação | Em andamento |
| Pré-requisito | 1 navegador 2. motor de busca 3. site - Softwaretestinghelp.com deve existir | Script de pré-requisito | N / D |
As etapas de execução são:
| Inicie o mecanismo de pesquisa do Google |
| Verifique se o motor de busca foi carregado com sucesso |
| Digite softwaretestinghelp.com na caixa de pesquisa |
| Aguarde o carregamento dos resultados |
| Verifique se o primeiro link nos resultados direciona para softwaretestinghelp.com |
| Se sim, abra o link. |
| Espere até o site abrir. |
Aqui está o script da ferramenta de automação Geb para o cenário acima:
import geb.Browser Browser.drive { go 'http://google.com/' //verify if we are on the correct page assert title=='Google' //enter softwaretestinghelp.com into the search field $('input',name:'q').value('softwaretestinghelp.com') //wait for the change to results page to happen //(google updates the page dynamically without a new request) waitFor{ title.endsWith('Google Serach')} //is the first link to softwaretestinghelp.com? def firstLink = $('li.g,0).find('a.l') assert firstLink.text()= ='Software Testing Help - A Must Visit Software Testing Portal' //click the link firstLink.click() //wait for Google's javascript waitFor { title = ='Software Testing Help - A Must Visit Software Testing Portal' } } Agora você pode tentar escrever um script GEB simples por conta própria, fazendo referência ao exemplo acima.
Teste de validação de banco de dados por meio de script Geb:
Qualquer teste de automação da web é dividido em três partes:
- Validação de IU - Validar os dados refletidos na interface do usuário (front end) antes e depois da execução do cenário de teste de automação.
- Validação DB - Validar os dados refletidos no banco de dados (backend) antes e depois da execução do cenário de teste de automação.
- Fluxo de teste real / fluxo de script.
O script Geb escrito para automatizar um cenário de teste pode conter o código para todas as três seções acima.
O script Geb na seção de exemplo acima foi para automatizar o fluxo de teste e validação de IU. Da mesma forma, você pode escrever um script de teste para validação do banco de dados.
Para qualquer teste de validação de banco de dados, você sempre pode usar o modelo abaixo como um esboço para o seu código:
def validateDB(/*define all variables here*/) { def errorMessages = '' try { Configuration conf = (new ConfigurationLoader()).getConf() def sql = Sql.newInstance(conf.readValue('dbPath', ''), conf.readValue('dbUserName', ''), conf.readValue('dbPassword', ''), conf.readValue('dbDriverName', '')) /* Populate any required variables */ } /* Give print commands here to print required values */ def qry = /* select statement to pull all required values from database */ println 'SQL=$qry' sql.eachRow(qry) { row -> /* ‘if’ block to perform validation and returning error in case of any variations */ } catch(Exception e) { println 'EEEE=$e' } return errorMessages } Alguns métodos úteis no Geb
- Quando o cenário do caso de teste envolve várias guias e janelas: Sempre que você encontrar um aplicativo que abre novas janelas ou guias, Por exemplo ao clicar em um link com um conjunto de atributos de destino, você pode usar withWindow () e withNewWindow () métodos para executar código no contexto de outras janelas.
- O método de acionamento: A classe do navegador contém um método estático - dirigir() . Este método oferece uma conveniência extra ao script Geb. Todas as chamadas de método de nível superior e acessos de propriedade estão implícitos em relação ao navegador.
- Fazendo pedidos: As instâncias do navegador mantêm um baseUrl propriedade que é empregada para resolver todos os URLs relativos. Normalmente, é mais preferível definir seus URLs básicos com barras finais e não usar barras iniciais em URLs relativos.
- Mudando a página: Com a ajuda de úteis página() métodos, é possível alterar a instância da página sem fazer uma nova solicitação.
- Saindo do navegador: O objeto do navegador fornece Sair() e fechar() métodos (que simplesmente passam a tarefa para o driver básico).
Desvantagens desta ferramenta
- Nascermos executa WebDriver na linguagem Groovy. A ideia por trás disso é fazer uso de WebDriver mais fácil e simples. Portanto, ao usar o Webdriver através do Geb, apenas a linguagem de programação Groovy será compatível. Mas, se você usar diretamente WebDriver , ele suporta muitas linguagens como Ruby, C #, Python, Java.
- Eu não sugeriria o uso do Geb para pequenos projetos - ele funciona muito bem para tarefas enormes, mas prejudica pequenas atividades. Se seu aplicativo da web não contém várias páginas e formulários pelos quais as informações precisam fluir, você pode descobrir que o Geb realmente custa mais tempo do que poupa.
- É muito específico o ambiente utilizado pelo aplicativo do seu site. O Geb deve estar bem integrado em um ambiente específico para que funcione bem.
Mais recursos:
- Confira o Livro de Geb aqui para documentação detalhada e exemplos.
- Aqui está um exemplo de projeto que mostra o integração do Geb com grails .
Conclusão
Geb é muito útil na automação de cenários de caso de teste. É útil para automatizar testes de aceitação do usuário, funcionais e da web. Ele oferece suporte a vários navegadores e pode ser integrado a diferentes estruturas. Ele combina o poder do WebDriver, a elegância do jQuery Selection, a robustez do Page Object Modeling e a expressividade do Groovy.
Os scripts Geb são amigáveis para o desenvolvedor e para o usuário, fornecendo melhor cobertura de teste e testes acelerados, ao mesmo tempo que os tornam mais eficientes.
Sobre o autor: Esta é uma postagem convidada por Priya K. Ela tem mais de 4 anos de experiência em Serviços de TI, com especialização em testes e suporte para vários aplicativos.
Sinta-se à vontade para postar suas consultas de teste de automação Geb nos comentários.
Leitura recomendada
- Tutorial da ferramenta de teste de acessibilidade WAVE
- Tutorial de Ranorex: uma ferramenta poderosa de teste de automação de desktop, web e celular
- Sikuli GUI Automation Testing Tool - Guia do Iniciante Parte 2
- Tutorial do Parrot QA: revisão da ferramenta de teste funcional em vários navegadores
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Tutoriais detalhados do Eclipse para iniciantes
- O que é teste de automação (guia definitivo para iniciar a automação de teste)
- Tutorial Parasoft SOAtest: Ferramenta de teste de API sem script