9
votes

Accélérer le sélénium webdiver

J'utilise Selenium WebDiver (2.0) sous les liaisons de langue Perl, avec Firefox 20. Il est incroyablement lent. Par exemple, une opération commune consiste à remplir un couple de avec un identifiant et un mot de passe. Je pourrais le taper en 2 à 3 fois plus vite que le sélénium fait une méthode "send_keys '. Les éléments de localisation, tels qu'une cellule de table avec du texte spécifique dans une grande table, c'est comme regarder la peinture à sec.

Je pensais que peut-être qu'il existe une sorte de réglage de vitesse par défaut qui n'était pas à sa valeur la plus élevée, mais les méthodes get_speed et Set_Speed ​​ont été supprimées. Alors, le sélénium est-il déjà à plat, ou existe-t-il un certain réglage que je peux modifier? J'ai vu beaucoup de questions sur la façon de ralentir sélénium, mais à ce moment-là, je cherche comment vitesse de vitesse . Je m'inquiète de le ralentir plus tard, si nécessaire.

  • Perl: Strawberry Perl 5.16.3 (Pilote pour programme de test)
  • Java: 1.7.0_21-B11 (pour le fichier Selenium Server .jar) (32 bits)
  • selenium :: Remote :: Driver: 0.16 via CPAN (liaisons de langue perl)
  • selenium-serveur-autonome: 2.32.0
  • OS: Windows 7 Professionnel, SP 1 (64 bits)
  • Hardware: Dell Precision T1650 (RAM Xeon 3.5GHz 16 Go)
  • Navigateur: Firefox 20.0.1 avec l'IDE SELENIUM 1.10.0 (les utilisateurs de la production auront chrome, IE9, Opera)

    Étant donné que même une opération "atomique", telle que la saisie de texte dans un champ de saisie, c'est si lent, je ne pense pas que ce soit un problème avec l'utilisation de localisateurs XPath plutôt que du CSS ou de Perl au lieu d'une autre langue. Il a été suggéré que j'essaye Chrome au lieu de FF - peut-il vous aider que beaucoup? Je fais beaucoup de texte de localisation dans les cellules du tableau, de sorte que les localisateurs CSS sont malheureusement de la valeur limitée.

    Merci beaucoup pour toute aide à ce sujet! Je vais avoir l'air réel mauvais si cette automatisation de test n'est pas plus rapide que manuellement les tests!


6 commentaires

Je me suis éloigné du sélénium à l'aide des API de la plate-forme Mozilla pour conduire directement Firefox (E.g: écrire le code JavaScript "privilégié"). Son seul goulot d'étranglement de la performance attend les réponses HTTP. Ces API exigeront toutefois que vous appreniez un lot plus sur les internes des applications Mozilla.


Je serais intéressé de savoir si la rétrogradation de Firefox quelques versions a un roulement. Ne disant pas que c'est une solution si cela fonctionne, mais il serait intéressant de savoir si la version de Firefox a une incidence sur le problème.


S'il y avait un moyen d'accélérer les navigateurs pilotés par Selenium, vous penseriez que l'équipe Selenium Dev serait proposée avec quelque chose pour nous, mais ils ne l'ont pas fait.


Je suis toujours en train de réécrire beaucoup de code de test, en particulier pour utiliser le texte exact = plutôt que contenant (). Depuis que j'ai mis à niveau vers FF 21, il semble aller beaucoup plus vite, même les opérations de saisie de texte. Quand j'aurai fini avec ça, je vais essayer de me souvenir de faire rapport ici.


Néanmoins pas aussi vite que je voudrais, mais FF 22 et les tests de texte exacts semblent assez rapides pour le moment. Pas encore fait, mais suffisamment, c'est que je pense que ce sera utilisable.


Sont-ils toutes les pages Ajax que vous interagissez avec? Sinon, htmlunit serait un conducteur beaucoup plus rapide.


3 Réponses :


2
votes

Un peu en retard à la fête, mais il y a le pilote fantôme http://pantomjs.org/ qui ne fait pas ' T Utilisez un pilote d'écran et peut être accroché au sélénium.

  ./phantomjs --webdriver=5556 --webdriver-selenium-grid-hub=http://localhost:4444


0 commentaires

0
votes

Cela peut ne pas être directement applicable, mais vous pouvez suivre quelques conseils simples pour enquêter sur la première fois où la plupart du temps est dépensé. Regardez l'article ci-dessous:

https: //blog.mavenhive. in / 7-astuces-to-vitesse-up-your-webdiver-tests-4f4d043ad581

Je suppose que la plupart d'entre eux sont des étapes génériques qui s'appliqueraient également à l'outil utilisé pour les tests.


0 commentaires

0
votes

Pour quiconque venant à cette question:

Les tests de sélénium ont évolué de beaucoup de façons et ils fonctionnent à des vitesses plus rapides qu'auparavant.

Mais pour que vos tests fonctionnent beaucoup plus rapidement, utilisez le mode sans tête , qui n'ouvre aucune fenêtre de test. Il est disponible, dans chromedriver et geckoRiver .


0 commentaires