Pourquoi un développeur a-t-il déjà besoin de fantomjs plutôt que de simplement utiliser un cadre de test?

StackOverflow https://stackoverflow.com//questions/12710578

Question

Je ne sais pas pourquoi les fantomjs sont nécessaires et j'espère que quelqu'un peut aider.

Était-ce utile?

La solution

JavaScript qui nécessite un DOM ayant besoin d'un endroit à exécuter, normalement dans le navigateur. Les cadres de test incitent donc souvent un navigateur qu'ils contrôlent ensuite pour exécuter les tests et effectuer des revendications. Les cadres de test eux-mêmes ne peuvent souvent pas contrôler directement le navigateur, de sorte que vous vous retrouvez avec trois couches à votre test:

  • Cadre: E.G. Jasmine
  • pilote: par exemple Sélénium
  • Navigateur: E.G. Firefox

Simplement, Phantomjs est un navigateur qui fonctionne sans l'insertion (c'est-à-dire qui n'attire pas l'écran). Les avantages qui apportent la vitesse - si vous contrôlez un programme réel sur votre ordinateur, vous avez une certaine surcharge dans le démarrage du navigateur, configurez un profil, etc.

Phantomjs est beaucoup plus rapide à cela (j'ai vu des tests courus en moins de 1/3 de l'heure). Le seul compromis est que vous ne pouvez pas voir vos tests en cours d'exécution, cependant, ce n'est pas une grande partie d'un problème pour une suite automatisée! Vous pouvez également prendre des captures d'écran si nécessaire (par exemple sur les échecs). Si vous le souhaitez vraiment, vous pouvez prendre des captures d'écran sur 24FPS et envoyer à FFMPEG pour rendre une vidéo de vos tests, bien que vous sticulez saper vos économies de vitesse, alors :)

Autres conseils

C'est un malentendu courant. Passer du temps avec le Documentation efface généralement la confusion. Par exemple, Phantomjs est souvent utilisé comme Coureur de test sans tête pour des tests rédigés dans des dizaines de cadres: Buster.js, Capybara, Moka, Jasmine, Qunit, WebDriver, Test Yui et bien d'autres. Comme vous pouvez le constater ici, Phantomjs ne remplace pas les cadres du tout.

Bien sûr, il existe de nombreuses autres utilisations de Phantomjs, tout à partir de page Web de capture Pour automatisé surveillance réseau . Il y a un Liste de divers articles de blog et articles qui démontrent différents cas d'utilisation rapportée de Phantomjs.

Phantomjs n'est pas destiné à remplacer un cadre de test, il fonctionnera conjointement avec un.

Par exemple, voici un exemple aléatoire Phantomjs utilisé conjointement avec Jasmine .

Notez également que les fantomjs ne sont pas seulement pour les tests, vous pouvez l'utiliser pour des éléments tels que la grattage de l'écran ou pour la charge de rendu lourde hors chargement (par exemple, pour les navigateurs mobiles défigés par la CPU) sur le serveur, comme dans Cet exemple .

Un autre cas d'utilisation qui n'a pas été mentionné ici permet de rendre une page Web et de générer des instantanés d'image ou de PDF de cette page.

Par exemple, vous pouvez rendre une facture, un rapport, un document, ... en tant que page Web HTML et le rendre à PDF pour l'envoyer à votre utilisateur final en tant que document téléchargeable.

ou peut-être que vous voulez vignettes de capture d'écran d'une page Web ?Un autre cas d'utilisation possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top