Agile Testers TechTalks | Test War Stories - Andreia Gaita @ Tech Lead do GitHub. Saiba mais aqui

Dúvida - Criar test com Capybara + site_prism



  • Pessoal, bom dia!

    Comecei utilizar Ruby e Capybara agora e estou tendo alguns problemas para a execução dos meus teste.

    O cenário no qual me encontro é de uma aplicação no qual devo realizar o login para acessar as funcionalidades. Atualmente estou fazendo com que cada teste faça o login, execute o teste e encerre o WebDriver, isso esta consumindo grande parte da memoria do servidor de Homolog da empresa.

    Gostaria de saber como faço para realizar o login uma vez e então executar todos os testes e ai encerrar o WebDriver. Pensei em utilizar Cookies porem não sei como implementar no projeto e nem usar o mesmo driver aberto.

    Alguém pode me ajudar?

    Obs. Estou utilizando o projeto da Samanta



  • Isso dependen muito de como vc quer seus testes…

    Tipo… tem gente que prefere uma sessão limpa, ou seja, um metodo de login como condição de entrada e logoff de condição de saida é o suficiente…

    Agora… se sua condição é estar logado, vc pode colocar um check antes do login para ver se está logado e se não estiver, efetua o login OU remover as condicionais que mata o browser e abre um novo…

    Cookies quem usa é sua aplicação… você não vai querer fazer esse tipo de gerenciamento… mesmo pq não vai estar testando 100% aplicação e sim uma gambits que vc fez (se for levar em consideração que sua aplicação grave e use dados de cookie.


  • MVP

    Você pode usar Hooks.

    Meter um
    Before @login do
    #aqui vc vai colocar os steps que vc quer fazer antes de realizar o step principal
    visit 'url do login’
    find (:id, ‘elemento_user’).set(‘[email protected]’)
    find (:id, ‘elemento_pass’).set(‘inicial1234’)
    click_button 'login’
    end

    Ai antes do seu cenario (no arquivo de feature) vc coloca @login

    e executa o role



  • Pessoal, obrigado pelas sugestões vou implementar no projeto e ver se resolve o problema.



  • Pessoal, qual é a forma correta de esperar um elemento carregar na tela?