Pourquoi un développeur jamais besoin de PhantomJS plutôt que de simplement en utilisant certains framework de test?
Je ne suis pas sûr pourquoi PhantomJS est nécessaire et je suis en espérant que quelqu'un peut vous aider.
Vous devez vous connecter pour publier un commentaire.
JavaScript qui nécessite un DOM besoins quelque part à courir, normalement dans le navigateur. Donc testez les cadres souvent tirer un navigateur qui la contrôle afin d'exécuter les tests & effectuer l'affirme. Le test de cadres eux-mêmes ne peuvent souvent pas de contrôler le navigateur directement, de sorte que vous vous retrouvez avec trois couches de votre test:
Simplement, PhantomJS est un navigateur qui fonctionne headlessly (i.e. ne pas dessiner sur l'écran). Les avantages qu'apporte la vitesse si vous êtes le contrôle d'un programme sur votre ordinateur, vous avez une certaine surcharge au démarrage du navigateur, configuration d'un profil etc.
PhantomJS est beaucoup plus rapide à présent (j'ai vu des tests effectués en moins de 1/3 du temps). Le seul inconvénient est que vous ne pouvez pas voir vos tests en cours d'exécution, si ce n'est pas vraiment un problème pour un système automatisé de suite! Vous pouvez également prendre des captures d'écran si nécessaire (par exemple, sur les échecs). Si tu le voulais vraiment, vous pouvez prendre des captures d'écran à 24 im /s & envoyer à ffmpeg pour rendre une vidéo de vos tests, mais vous pouvez porter atteinte à votre vitesse d'épargne alors 🙂
C'est une erreur courante. Passer du temps avec la la documentation disparaît généralement la confusion. Par exemple, PhantomJS est souvent utilisé comme un headless test runner pour les tests écrits dans des dizaines de cadres: Buster.JS Capybara, de Moka, de Jasmin, de QUnit, WebDriver, YUI Test, et beaucoup plus. Comme vous pouvez le voir ici, PhantomJS ne remplace pas ceux des cadres à tous.
Bien sûr, il existe de nombreuses autres utilisations de PhantomJS, de tout, de par programme capture de la page web à l'automatisation de la de surveillance de réseau. Il y a un liste de divers blogs et d'articles qui montrent différentes signalé des cas d'utilisation de PhantomJS.
PhantomJS est pas destiné à remplacer un framework de test, il travaillera en collaboration avec un.
Pour exemple, voici un hasard PhantomJS utilisé en conjonction avec le Jasmin.
Également noter que PhantomJS n'est pas juste pour le test, vous pouvez l'utiliser pour des choses comme le grattage d'écran ou hors de chargement lourd rendu de la charge (par exemple, pour le CPU mis au défi par les navigateurs mobiles) sur le serveur, comme dans cet exemple.
Un autre cas d'utilisation qui n'a pas été mentionné ici est le rendu d'une page web et de générer l'image ou PDF instantanés de cette page.
Par exemple, vous pouvez rendre une facture, rapport, document, ... au format HTML de la page web et l'afficher au format PDF pour l'envoyer à votre utilisateur final en tant que document téléchargeable.
Ou peut-être vous voulez capture d'écran des vignettes d'une page web? Une autre utilisation possible de cas.