2012-02-02 4 views
3

J'ai créé des tests en utilisant le sélénium 2, j'utilise également le serveur sélénium autonome pour exécuter les tests.Les tests au sélénium échouent parfois, passent parfois

Le problème est que si j'exécute un test, cela fonctionne. Si j'exécute plusieurs tests, certains d'entre eux échouent. Si j'essaye alors d'exécuter un test échoué, cela fonctionne.

Les tests peuvent-ils être exécutés sur des threads? J'ai utilisé l'interface graphique de NUnit, et TeamCity pour exécuter les tests ... tous deux donnent les mêmes résultats: différents tests échouent, se répètent, d'autres tests échouent.

Des pensées?

EDIT

Les tests ne devraient pas dépendre les uns des autres. La base de données est vidée et repeuplée pour chaque test. Je suppose que le seul problème pourrait être que la base de données n'est pas vidée correctement ... mais si j'exécute le même test plusieurs fois, elle devrait aussi échouer.

EDIT2

Les tests échouent avec "élément introuvable". Je vais essayer d'ajouter un "WaitForElement" qui réessaye toutes les quelques millisecondes et peut-être que cela va le réparer.

+0

Quelle est la nature des tests? Sont-ils thread safe? dépendants les uns des autres? – Randy

Répondre

3

Sans connaître les erreurs exactes qui sont jetées c'est difficile à dire. Les causes normales de flakiness ont tendance à être des attentes ne sont pas définies à une heure décente ou le serveur Web ne peut pas gérer autant de demandes.

Si la base de données est sur la même machine que le serveur Web, et pourquoi ne devrait pas être sur une boîte de construction, il peut être intensif pour l'effacer.

Je recommanderais de passer en revue chacune des erreurs et de les rendre pareilles à la balle, puis de passer à la suivante. Je sais que les gens qui courent là-bas font des tests tout le temps sans flocons, donc c'est définitivement une chose environnementale qui peut être triée.

+0

merci pour la réponse, les tests échouent avec "élément non trouvé" – sirrocco

+0

Ensuite, vos tests s'exécutent trop rapidement pour la page en cours de chargement. – AutomatedTester

+0

Existe-t-il un moyen d'augmenter ce délai globalement? En sélénium? – sirrocco

1

Je sais que je suis un peu en retard à la fête ici, mais utilisez-vous une seule fenêtre pour faire vos tests? J'ai eu un problème similaire puisque le site que je suis en train de tester n'a qu'un seul chargement d'une page, donc attendre des éléments ou mettre le test en pause est devenu très douteux et j'ai eu des tests différents à chaque fois. Ajouter une tonne de temps d'attente ne fonctionnait pas du tout jusqu'à ce que je viens d'ouvrir un nouveau navigateur "propre" pour chaque test. Les tests deviennent plus lents mais cela a fonctionné.

Questions connexes