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!
-
Designing for Simplicity
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…
-
Filtros CSS
O suporte a filtros CSS foi lançado recentemente nos nightlies do WebKit. Filtros CSS fornecem um método para modificar a renderização de um elemento DOM básico, imagem ou vídeo. Os filtros CSS permitem desfocar, distorcer e modificar a intensidade da cor dos elementos. Vamos lá…