Atualização: Encontrei o problema principal e o detalhei no final desta postagem.


No ano passado, criei e implementei testes Selenium na Mozilla Developer Network usando a interface Intern criada pelo SitePen. O Intern tem sido fantástico; é claro que há uma curva de aprendizado com a codificação JavaScript assíncrona, mas é simples quando o senhor pega o jeito.


Um problema que encontrei com o teste funcional por meio de serviços como o BrowserStack e o Sauce Labs é que obtemos falhas que geralmente não obtemos ao testar localmente. Quando testei com um navegador, tudo correu bem, mas testar vários navegadores fez com que nossos testes entrassem em uma espiral de falhas transitórias. No entanto, quando fiz um ajuste em uma configuração, tudo saiu como planejado:



// Maximum number of simultaneous integration tests that should be executed on the remote WebDriver service
maxConcurrency: 1,


Configurando o maxConcurrency para 1 era tudo o que precisávamos fazer. Em vez de todos os navegadores serem gerados de uma só vez, cada teste é executado em um navegador e depois em outro. Bingo!


Quanto ao que estava causando o problema final, não tenho certeza. Os testes incluíram testes de autorização e login, portanto, é possível que tenha havido sobreposições no login e na saída, causando confusão no servidor. De qualquer forma, se o senhor precisar fazer as coisas andarem rapidamente, limite o maxConcurrency e o senhor poderá começar a ver muito mais testes aprovados.


Atualização: Firefox + Focus + Bug do Selenium


Depois de muitos testes e pesquisas, encontrei a raiz dos meus problemas com a aprovação dos testes quando um navegador é executado e não quando é executado simultaneamente: quando o Firefox não é o navegador focado/”no topo”, os eventos de foco não são transmitidos. E, no meu caso específico, eu estava testando animações CSS, e elas não ocorrem quando um navegador não está focado. Espero que esse bug também seja corrigido no Selenium!

  • Projetando para a simplicidade

    Antes de começarmos, vale a pena dedicar um breve momento para me apresentar aos senhores. Meu nome é Mark (ou @integralist se o Twitter for sua ferramenta de comunicação preferida) e atualmente trabalho para a BBC News em Londres, Inglaterra, como engenheiro principal/técnico…

  • Animações CSS entre consultas de mídia

    As animações CSS estão no mesmo patamar do pão fatiado. As animações CSS são eficientes porque podem ser aceleradas por hardware, não exigem sobrecarga de JavaScript e são compostas por pouquíssimo código CSS. Muitas vezes, adicionamos transformações de CSS a elementos por meio de CSS durante…