<li id="zuacn"><legend id="zuacn"><li id="zuacn"></li></legend></li><label id="zuacn"><xmp id="zuacn"><bdo id="zuacn"></bdo>

      <i id="zuacn"></i>
      <i id="zuacn"></i>
      <center id="zuacn"><nav id="zuacn"></nav></center>

    1. <thead id="zuacn"></thead>
        ><\/span>\n<\/span> class=\"tag tag-first\"<\/span>><\/span>The moving finger writes, and having written moves on.<\/div<\/span>><\/span>\n<\/span> class=\"tag tag-second\"<\/span>><\/span>Nor all thy piety nor all thy wit, can cancel half a line of it.<\/div<\/span>><\/span>\n<\/span> <\/body<\/span>><\/span>\n<\/span><\/html<\/span>><\/span><\/span><\/pre>\n\n

        Pour installer le serveur Web, initialisez un projet NPM et installez le package HTTP-Server. <\/p>\n\n

        npm init\n<\/span>npm install http-server --save-dev<\/span><\/pre>\n\n

        Pour exécuter le serveur, définissons un simple script NPM. Ajoutez simplement la section Scripts suivante à package.json <\/p>\n

        ><\/span>Hello, %username%!<\/div<\/span>><\/span><\/span><\/pre>\n\n\n

        Maintenant, vous pouvez exécuter NPM Start à partir du dossier du projet et la page d'index sera accessible sur l'adresse par défaut http:\/\/127.0.0.1:8080. Démarrez le serveur et laissez-le fonctionner pour le moment. Nous en aurons besoin dans un moment. <\/p>\n

        Installation de PhantoMCSS <\/h2>\n

        L'installation de PhantoMCSS est facile, tout ce que vous avez à faire est d'ajouter quelques dépendances à votre projet: <\/p>\n\n

        <\/span>\n<\/span>><\/span>\n<\/span>  ><\/span>\n<\/span>    ><\/span>\n<\/span><\/span>      .tag<\/span> {\n<\/span><\/span><\/span>        color: #fff;\n<\/span><\/span><\/span>        font-size: 30px;\n<\/span><\/span><\/span>        border-radius: 10px;\n<\/span><\/span><\/span>        padding: 10px;\n<\/span><\/span><\/span>        margin: 10px;\n<\/span><\/span><\/span>        width: 500px;\n<\/span><\/span><\/span>      }\n<\/span><\/span><\/span>\n<\/span><\/span>      .tag-first<\/span> {\n<\/span><\/span><\/span>        background: lightcoral;\n<\/span><\/span><\/span>      }\n<\/span><\/span><\/span>\n<\/span><\/span>      .tag-second<\/span> {\n<\/span><\/span><\/span>        background: lightskyblue;\n<\/span><\/span><\/span>      }\n<\/span><\/span><\/span>    <\/span><\/style<\/span>><\/span>\n<\/span>  <\/head<\/span>><\/span>\n<\/span>\n  
        

        国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

        ><\/span>\n<\/span> class=\"tag tag-first\"<\/span>><\/span>The moving finger writes, and having written moves on.<\/div<\/span>><\/span>\n<\/span> class=\"tag tag-second\"<\/span>><\/span>Nor all thy piety nor all thy wit, can cancel half a line of it.<\/div<\/span>><\/span>\n<\/span> <\/body<\/span>><\/span>\n<\/span><\/html<\/span>><\/span><\/span><\/pre>\n\n

        Création d'une suite de test <\/h2>\n

        Maintenant, nous avons tout ce dont nous avons besoin pour configurer la première suite de tests. Les suites de test PhantoMCSS sont créées sous la forme de scripts Node.js où vous ouvrez la page requise de votre site Web, prenez des captures d'écran et comparez-les aux images de l'exécution précédente. Nous commen?ons par un simple cas de test basé sur la démo de Phantomcss lui-même. <\/p>\n\n

        npm init\n<\/span>npm install http-server --save-dev<\/span><\/pre>\n\n

        Le test ouvrira http:\/\/127.0.0.1:8080\/, prenez une capture d'écran de l'élément corporel et enregistrez-le sous des captures d'écran \/ body.png. <\/p>\n

        Une fois que le test lui-même est en place, il ne reste plus que de définir un script pour exécuter le test. Ajoutons le script suivant à package.json Suivant pour démarrer: <\/p>\n\n

        \"scripts\": {\n<\/span>  \"start\": \"http-server\"\n<\/span>},<\/span><\/pre>\n\n

        Vous pouvez maintenant l'exécuter en exécutant la commande suivante: <\/p>\n\n

        npm install phantomcss casperjs phantomjs-prebuilt --save-dev<\/span><\/pre>\n\n

        La sortie que vous verrez devrait ressembler à quelque chose comme ceci: <\/p>\n\n

        var phantomcss = require('phantomcss');\n<\/span>\n\/\/ start a casper test\n<\/span>casper.test.begin('Tags', function(test) {\n<\/span>\n  phantomcss.init({\n<\/span>    rebase: casper.cli.get('rebase')\n<\/span>  });\n<\/span>\n  \/\/ open page\n<\/span>  casper.start('http:\/\/127.0.0.1:8080\/');\n<\/span>\n  \/\/ set your preferred view port size\n<\/span>  casper.viewport(1024, 768);\n<\/span>\n  casper.then(function() {\n<\/span>      \/\/ take the screenshot of the whole body element and save it under \"body.png\". The first parameter is actually a CSS selector\n<\/span>      phantomcss.screenshot('body', 'body');\n<\/span>  });\n<\/span>\n  casper.then(function now_check_the_screenshots() {\n<\/span>    \/\/ compare screenshots\n<\/span>    phantomcss.compareAll();\n<\/span>  });\n<\/span>\n  \/\/ run tests\n<\/span>  casper.run(function() {\n<\/span>    console.log('\\nTHE END.');\n<\/span>    casper.test.done();\n<\/span>  });\n<\/span>});<\/span><\/pre>\n\n

        Puisque vous avez exécuté le test pour la première fois, il créera simplement une nouvelle capture d'écran de base et ne fera aucune comparaison. Allez-y et jetez un ?il à l'intérieur du dossier des captures d'écran. Vous devriez voir une image comme celle-ci: <\/p>\n\"Test\n

        Il s'agit de l'étalon d'or de la fa?on dont votre site Web est censé apparence et les futures exécutions du test comparent leurs résultats à cette image. <\/p>\n

        introduisant une régression <\/h2>\n

        Si vous exécutez à nouveau la même commande de test, il rapportera que tous les tests sont passés avec succès: <\/p>\n\n\n

        \"test\": \"casperjs test test.js\"<\/span><\/pre>\n\n

        Ceci est à prévoir car nous n'avons rien changé sur le site Web. Brimons quelque chose et rédigeons à nouveau les tests. Essayez de modifier certains styles dans index.html, par exemple, diminuez la taille des blocs à 400px. Maintenant, passons à nouveau le test et voyons ce qui se passe: <\/p>\n\n

        npm test<\/span><\/pre>\n\n

        Plusieurs choses importantes se sont produites ici. Premièrement, PhantoMCSS a rapporté que les tests ont échoué en raison d'un décalage pour la capture d'écran body_0.png. L'inadéquation est mesurée à 11,41%. Deuxièmement, la différence entre la version actuelle et la version précédente a été enregistrée dans le dossier des échecs. Si vous l'ouvrez, vous verrez une capture d'écran comme celle-ci: <\/p>\n\"Test\n

        La capture d'écran met commodément les zones qui ont été modifiées, il est donc facile de repérer la différence. <\/p>\n

        accepter les changements <\/h2>\n

        Maintenant que la différence a été mise en évidence, que devons-nous faire pour accepter le changement? Nous devons en quelque sorte être en mesure de dire à l'outil que nous voulons rester avec la largeur réduite des blocs et accepter la vue actuelle comme la nouvelle norme. Pour ce faire, vous pouvez exécuter la commande de test avec un argument supplémentaire - - Rebase: <\/p>\n\n

        ><\/span>Hello, %username%!<\/div<\/span>><\/span><\/span><\/pre>\n\n

        Notez les deux tirets doubles. C'est la fa?on de NPM de passer un paramètre à la commande sous-jacente. Ainsi, la commande suivante se traduira par Casperjs test test.js --rebase. Maintenant que nous avons accepté le changement, l'image de base précédente sera remplacée par la nouvelle. <\/p>\n

        l'emporter plus loin <\/h2>\n

        Maintenant que vous avez le respect des bases, vous pouvez commencer à penser à intégrer cet outil dans votre propre flux de travail. Je n'imerai pas dans les détails de cela car il est assez spécifique au projet, mais voici quelques questions à réfléchir: <\/p>\n

          \n
        • Allez-vous exécuter les tests contre le vrai site Web, ou une sorte de guide de style, où seuls des éléments d'interface utilisateur séparés sont présents? <\/li>\n
        • Votre site a-t-il un contenu dynamique? Si oui, les modifications du contenu entra?neront la rupture des tests. Pour éviter cela, vous devrez configurer une version distincte du site Web avec un contexte statique pour exécuter les tests contre. <\/li>\n
        • Allez-vous ajouter les captures d'écran dans votre contr?le de version? Oui, vous devriez. <\/li>\n
        • Allez-vous prendre des captures d'écran des pages entières, ou des éléments séparés? <\/li>\n<\/ul>\n\n\n

          En utilisant cet outil, vous pouvez désormais couvrir les aspects visuels de votre site Web avec des tests automatisés. Avec votre unité et vos tests fonctionnels déjà en place, cette nouvelle stratégie comblera une lacune étroite dans votre frontière de test. Même si vous êtes encore nouveau dans les tests - c'est un bon point de départ! <\/p>\n\n\n\n

          Questions fréquemment posées (FAQ) sur les tests de régression visuelle avec PhantoMCSS <\/h2>\n\n\n\n

          Qu'est-ce que PhantoMCSS et comment cela fonctionne-t-il? <\/h3>

          PhantoMCSS est un outil de test de régression visuelle qui utilise des Phantomjs et ressembler.js pour comparer les captures d'écran des pages Web. Il fonctionne en prenant des captures d'écran de vos pages Web, en les comparant aux images de base et en mettant en évidence les différences. Cela permet aux développeurs d'identifier et de fixer rapidement des incohérences visuelles dans leurs pages Web. PhantoMCSS est particulièrement utile dans les grands projets où les tests manuels peuvent être longs et sujets aux erreurs. <\/p>

          Comment installer des Phantomcss? <\/h3>

          Phantomcss peuvent être installés à l'aide de NPM, le package Node.js directeur. Vous pouvez l'installer globalement en exécutant la commande npm install -g PhantoMCSS. Alternativement, vous pouvez l'ajouter en tant que dépendance de développement à votre projet en exécutant NPM Installer - Save-Dev Phantomcss. <\/p>\n

          Comment utiliser les PhantoMCSS pour les tests de régression visuelle? <\/h3>

          Pour utiliser des phantomcss pour les tests de régression visuelle, vous devez d'abord créer un script de test qui indique aux PhantoMCSS de quoi capturer des captures d'écran de. Ce script peut être écrit en JavaScript ou CoffeeScript. Une fois le script prêt, vous pouvez l'exécuter à l'aide de Phantomjs. Les PhantoMCS captureront ensuite des captures d'écran des éléments spécifiés, les compareront aux images de référence et généreront un rapport montrant les différences. <\/p>

          Puis-je utiliser des fant?mes avec d'autres cadres de test? <\/h3>

          Oui, PhantomcSS peut être utilisé avec d'autres cadres de test comme Mocha, Jasmine et Qunit. Il peut également être intégré à des systèmes d'intégration continus comme Jenkins et Travis CI. <\/p>

          Quels sont les avantages de l'utilisation de PhantoMCSS pour les tests de régression visuelle? <\/h3>

          PhantoMCSS offre plusieurs avantages pour les tests de régression visuelle. Il automatise le processus de capture et de comparaison des captures d'écran, ce qui permet aux développeurs de faire beaucoup de temps. Il fournit également un rapport visuel qui facilite les différences de repère entre la ligne de base et les images de test. De plus, PhantoMCSS prend en charge les tests de conception réactifs, permettant aux développeurs de tester leurs pages Web sur différentes tailles d'écran. <\/p>

          Comment mettre à jour les images de base dans PhantoMCSS? <\/h3>

          pour mettre à jour les images de base dans PhantoMCSS, Vous devez simplement supprimer les anciennes images de base et exécuter le script de test. PhantoMCSS capturera de nouvelles captures d'écran et les utilisera comme nouvelles images de base. <\/p>

          Les Phantomcss peuvent gérer le contenu dynamique? <\/h3>

          Oui, les Phantomcss peuvent gérer le contenu dynamique. Il permet aux développeurs de spécifier un retard avant de capturer des captures d'écran, ce qui donne au contenu dynamique suffisamment de temps pour charger. Il prend également en charge l'utilisation de rappels pour attendre des événements spécifiques avant de capturer des captures d'écran. <\/p>

          Comment déboguer les tests dans PhantoMCSS? <\/h3>

          PhantoMCSS offre plusieurs options pour les tests de débogage. Il peut enregistrer les messages à la console, enregistrer les tests échoués sous forme de fichiers d'image et même créer une vidéo de l'exécution du test. Ces fonctionnalités facilitent l'identification et la résolution des problèmes dans vos tests. <\/p>

          Puis-je personnaliser le processus de comparaison dans PhantoMCSS? <\/h3>

          Oui, PhantoMCSS vous permet de personnaliser le processus de comparaison. Vous pouvez définir le type de comparaison, la tolérance de décalage et les paramètres de sortie. Cela vous donne plus de contr?le sur le processus de comparaison et vous permet de l'adapter à vos besoins spécifiques. <\/p>

          Quelles sont les alternatives aux PhantoMCSS pour les tests de régression visuelle? <\/h3>

          Il existe plusieurs alternatives aux PhantomcSS pour tests de régression visuelle, y compris les backstopjs, le wraith et les Gémeaux. Ces outils offrent des fonctionnalités similaires aux PhantoMCSS, mais ils peuvent avoir des forces et des faiblesses différentes en fonction de vos besoins spécifiques. <\/p>"}

          Table des matières
          Les plats clés
          Qu'est-ce que PhantoMCSS?
          Prenons-le pour un spin
          Configuration d'un projet de test
          Installation de PhantoMCSS
          Création d'une suite de test
          introduisant une régression
          accepter les changements
          l'emporter plus loin
          Questions fréquemment posées (FAQ) sur les tests de régression visuelle avec PhantoMCSS
          Qu'est-ce que PhantoMCSS et comment cela fonctionne-t-il?
          Comment installer des Phantomcss?
          Comment utiliser les PhantoMCSS pour les tests de régression visuelle?
          Puis-je utiliser des fant?mes avec d'autres cadres de test?
          Quels sont les avantages de l'utilisation de PhantoMCSS pour les tests de régression visuelle?
          Comment mettre à jour les images de base dans PhantoMCSS?
          Les Phantomcss peuvent gérer le contenu dynamique?
          Comment déboguer les tests dans PhantoMCSS?
          Puis-je personnaliser le processus de comparaison dans PhantoMCSS?
          Quelles sont les alternatives aux PhantoMCSS pour les tests de régression visuelle?
          Maison interface Web tutoriel CSS Test de régression visuelle avec PhantoMCSS

          Test de régression visuelle avec PhantoMCSS

          Feb 21, 2025 am 08:24 AM

          Test de régression visuelle avec PhantoMCSS

          Les plats clés

          • PhantoMCSS est un outil Node.js qui effectue des tests de régression visuelle, qui est une forme de tests automatisés qui vérifie si les éléments de la page Web apparaissent comme prévu. Il le fait en prenant une capture d'écran de la page ou d'un élément spécifique, en le comparant à une image de base stockée et en créant une image de la différence si les captures d'écran ne correspondent pas.
          • PhantoMCSS est construit sur plusieurs composants, notamment CasperJS pour interagir avec un navigateur Phantomcss ou SlimerJS, Phantomjs 2 ou Slimerjs comme navigateurs sans tête, et ressemble à.js pour comparer les images.
          • Pour utiliser des PhantoMCSS, une suite de test est créée sous la forme de scripts Node.js. La suite de test ouvre la page requise, prend des captures d'écran et les compare aux images de l'exécution précédente. Si des modifications sont apportées au site Web, le test peut être exécuté à nouveau pour comparer la nouvelle capture d'écran à l'original.
          • Si un changement visuel est détecté pendant un test, PhantoMCSS met en évidence les zones qui ont été modifiées. Pour accepter ces modifications, la commande de test peut être exécutée avec un argument supplémentaire. Cela remplace l'image de base précédente par la nouvelle.

          Si vous avez fait un développement sérieux dans votre carrière, vous avez probablement atteint le point lorsque vous avez réalisé l'importance des tests automatisés pendant le développement. Selon votre expérience, cette réalisation pourrait vous frapper dans une grande rafale ou elle peut vous venir doucement au fil du temps, mais elle deviendra éventuellement une seconde nature. Les tests automatiques se présentent sous de nombreuses formes, des tests unitaires, lorsque vous testez des éléments de code isolés, à l'intégration et aux tests fonctionnels, lorsque vous testez comment les différentes parties de votre système se comportent ensemble. Cet article ne concerne pas un aper?u des tests automatiques en général. Il s'agit d'un créneau particulier et relativement nouveau appelé Test de régression visuelle .

          Les tests de régression visuelle adoptent une approche alternative pour tester les pages Web. Au lieu de simplement s'assurer qu'un élément ou une valeur de texte est présent dans le DOM, le test ouvre en fait la page et vérifie si ce bloc spécifique ressemble exactement à ce que vous vouliez qu'il soit . Juste pour vous assurer que vous avez pris la différence, permettez-moi de vous donner un exemple. Imaginez que vous voulez que votre site Web salue vos visiteurs avec un message amical:

          <span><span><span><div</span>></span>Hello, %username%!<span><span></div</span>></span></span>

          Pour vous assurer que cela fonctionne, vous pouvez (et devriez) tester le morceau de code qui produit le message, en vérifiant qu'il insère le nom correct. Vous pouvez également écrire un test fonctionnel à l'aide de sélénium ou de protracteur pour voir si l'élément est réellement présent sur la page avec le texte correct. Mais ce n'est pas suffisant. Nous voulons tester non seulement que le texte est généré correctement ou appara?t dans le DOM mais pour nous assurer que l'élément entier semble correct , c'est-à-dire en s'assurant que l'élément n'est pas masqué par l'affichage: aucun ou que Quelqu'un n'a pas accidentellement remplacé la couleur du texte. Il existe un certain nombre d'outils pour le faire, mais aujourd'hui, nous examinerons une option en particulier - Phantomcss.

          Qu'est-ce que PhantoMCSS?

          PhantoMCSS est un outil Node.js pour effectuer des tests de régression visuelle. Il est open source et développé par les gars de Huddle. PhantoMCSS vous permet d'exécuter un navigateur sans tête, d'ouvrir une page et de prendre une capture d'écran de toute la page ou un élément particulier sur la page. Cette capture d'écran sera stockée en tant qu'image de référence pour référence future. Chaque fois que vous changez quoi que ce soit sur le site Web, vous pouvez exécuter à nouveau des PhantoMCSS. Il faudra une autre capture d'écran et le comparera à l'image d'origine. S'il n'y a aucune différence, le test passera. Si, cependant, les captures d'écran ne correspondent pas, le test échouera et une nouvelle image montrant la différence sera créée pour que vous puissiez examiner. Cette approche rend cet outil parfait pour tester les modifications de CSS.

          PhantoMCSS est construit au-dessus de plusieurs composants clés:

          • Casperjs - Un outil pour interagir avec un navigateur PhantoMCSS ou SlimerJS. Il vous permet d'ouvrir une page et d'effectuer des interactions utilisateur, telles que cliquer sur les boutons ou saisir des valeurs. De plus, Casperjs fournit son propre cadre de test et la possibilité de capturer des captures d'écran d'une page.
          • Phantomjs 2 ou SlimerJS - Deux navigateurs différents sans tête, qui peuvent être utilisés avec PhantomcSS. Un navigateur sans tête est comme un navigateur normal sans interface utilisateur.
          • ressembler.js - une bibliothèque pour comparer les images.

          PhantoMCSS peut être utilisé avec les Phantomjs et SlimerJS, mais dans cet article, nous utiliserons Phantomjs.

          Prenons-le pour un spin

          Créons un petit projet de test pour voir comment nous pouvons utiliser cet outil dans la pratique. Pour cela, nous aurons besoin d'une page Web pour tester et un serveur Web Node.js simple pour que Casperjs puisse ouvrir la page.

          Configuration d'un projet de test

          Créez un fichier index.html avec un exemple de contenu:

          <span><span><!doctype html></span>
          </span><span><span><span><html</span>></span>
          </span>  <span><span><span><head</span>></span>
          </span>    <span><span><span><style</span>></span><span>
          </span></span><span><span>      <span><span>.tag</span> {
          </span></span></span><span><span>        <span>color: #fff;
          </span></span></span><span><span>        <span>font-size: 30px;
          </span></span></span><span><span>        <span>border-radius: 10px;
          </span></span></span><span><span>        <span>padding: 10px;
          </span></span></span><span><span>        <span>margin: 10px;
          </span></span></span><span><span>        <span>width: 500px;
          </span></span></span><span><span>      <span>}
          </span></span></span><span><span>
          </span></span><span><span>      <span><span>.tag-first</span> {
          </span></span></span><span><span>        <span>background: lightcoral;
          </span></span></span><span><span>      <span>}
          </span></span></span><span><span>
          </span></span><span><span>      <span><span>.tag-second</span> {
          </span></span></span><span><span>        <span>background: lightskyblue;
          </span></span></span><span><span>      <span>}
          </span></span></span><span><span>    </span><span><span></style</span>></span>
          </span>  <span><span><span></head</span>></span>
          </span>
            <span><span><span><body</span>></span>
          </span>    <span><span><span><div</span> class<span>="tag tag-first"</span>></span>The moving finger writes, and having written moves on.<span><span></div</span>></span>
          </span>    <span><span><span><div</span> class<span>="tag tag-second"</span>></span>Nor all thy piety nor all thy wit, can cancel half a line of it.<span><span></div</span>></span>
          </span>  <span><span><span></body</span>></span>
          </span><span><span><span></html</span>></span></span>

          Pour installer le serveur Web, initialisez un projet NPM et installez le package HTTP-Server.

          <span>npm init
          </span><span>npm install http-server --save-dev</span>

          Pour exécuter le serveur, définissons un simple script NPM. Ajoutez simplement la section Scripts suivante à package.json

          <span><span><span><div</span>></span>Hello, %username%!<span><span></div</span>></span></span>

          Maintenant, vous pouvez exécuter NPM Start à partir du dossier du projet et la page d'index sera accessible sur l'adresse par défaut http://127.0.0.1:8080. Démarrez le serveur et laissez-le fonctionner pour le moment. Nous en aurons besoin dans un moment.

          Installation de PhantoMCSS

          L'installation de PhantoMCSS est facile, tout ce que vous avez à faire est d'ajouter quelques dépendances à votre projet:

          <span><span><!doctype html></span>
          </span><span><span><span><html</span>></span>
          </span>  <span><span><span><head</span>></span>
          </span>    <span><span><span><style</span>></span><span>
          </span></span><span><span>      <span><span>.tag</span> {
          </span></span></span><span><span>        <span>color: #fff;
          </span></span></span><span><span>        <span>font-size: 30px;
          </span></span></span><span><span>        <span>border-radius: 10px;
          </span></span></span><span><span>        <span>padding: 10px;
          </span></span></span><span><span>        <span>margin: 10px;
          </span></span></span><span><span>        <span>width: 500px;
          </span></span></span><span><span>      <span>}
          </span></span></span><span><span>
          </span></span><span><span>      <span><span>.tag-first</span> {
          </span></span></span><span><span>        <span>background: lightcoral;
          </span></span></span><span><span>      <span>}
          </span></span></span><span><span>
          </span></span><span><span>      <span><span>.tag-second</span> {
          </span></span></span><span><span>        <span>background: lightskyblue;
          </span></span></span><span><span>      <span>}
          </span></span></span><span><span>    </span><span><span></style</span>></span>
          </span>  <span><span><span></head</span>></span>
          </span>
            <span><span><span><body</span>></span>
          </span>    <span><span><span><div</span> class<span>="tag tag-first"</span>></span>The moving finger writes, and having written moves on.<span><span></div</span>></span>
          </span>    <span><span><span><div</span> class<span>="tag tag-second"</span>></span>Nor all thy piety nor all thy wit, can cancel half a line of it.<span><span></div</span>></span>
          </span>  <span><span><span></body</span>></span>
          </span><span><span><span></html</span>></span></span>

          Création d'une suite de test

          Maintenant, nous avons tout ce dont nous avons besoin pour configurer la première suite de tests. Les suites de test PhantoMCSS sont créées sous la forme de scripts Node.js où vous ouvrez la page requise de votre site Web, prenez des captures d'écran et comparez-les aux images de l'exécution précédente. Nous commen?ons par un simple cas de test basé sur la démo de Phantomcss lui-même.

          <span>npm init
          </span><span>npm install http-server --save-dev</span>

          Le test ouvrira http://127.0.0.1:8080/, prenez une capture d'écran de l'élément corporel et enregistrez-le sous des captures d'écran / body.png.

          Une fois que le test lui-même est en place, il ne reste plus que de définir un script pour exécuter le test. Ajoutons le script suivant à package.json Suivant pour démarrer:

          <span>"scripts": {
          </span>  <span>"start": "http-server"
          </span><span>},</span>

          Vous pouvez maintenant l'exécuter en exécutant la commande suivante:

          <span>npm install phantomcss casperjs phantomjs-prebuilt --save-dev</span>

          La sortie que vous verrez devrait ressembler à quelque chose comme ceci:

          <span>var phantomcss = require('phantomcss');
          </span>
          <span>// start a casper test
          </span>casper<span>.test.begin('Tags', function(test) {
          </span>
            phantomcss<span>.init({
          </span>    <span>rebase: casper.cli.get('rebase')
          </span>  <span>});
          </span>
            <span>// open page
          </span>  casper<span>.start('http://127.0.0.1:8080/');
          </span>
            <span>// set your preferred view port size
          </span>  casper<span>.viewport(1024, 768);
          </span>
            casper<span>.then(function() {
          </span>      <span>// take the screenshot of the whole body element and save it under "body.png". The first parameter is actually a CSS selector
          </span>      phantomcss<span>.screenshot('body', 'body');
          </span>  <span>});
          </span>
            casper<span>.then(function now_check_the_screenshots() {
          </span>    <span>// compare screenshots
          </span>    phantomcss<span>.compareAll();
          </span>  <span>});
          </span>
            <span>// run tests
          </span>  casper<span>.run(function() {
          </span>    <span>console.log('\nTHE END.');
          </span>    casper<span>.test.done();
          </span>  <span>});
          </span><span>});</span>

          Puisque vous avez exécuté le test pour la première fois, il créera simplement une nouvelle capture d'écran de base et ne fera aucune comparaison. Allez-y et jetez un ?il à l'intérieur du dossier des captures d'écran. Vous devriez voir une image comme celle-ci:

          Test de régression visuelle avec PhantoMCSS

          Il s'agit de l'étalon d'or de la fa?on dont votre site Web est censé apparence et les futures exécutions du test comparent leurs résultats à cette image.

          introduisant une régression

          Si vous exécutez à nouveau la même commande de test, il rapportera que tous les tests sont passés avec succès:

          <span>"test": "casperjs test test.js"</span>

          Ceci est à prévoir car nous n'avons rien changé sur le site Web. Brimons quelque chose et rédigeons à nouveau les tests. Essayez de modifier certains styles dans index.html, par exemple, diminuez la taille des blocs à 400px. Maintenant, passons à nouveau le test et voyons ce qui se passe:

          <span>npm test</span>

          Plusieurs choses importantes se sont produites ici. Premièrement, PhantoMCSS a rapporté que les tests ont échoué en raison d'un décalage pour la capture d'écran body_0.png. L'inadéquation est mesurée à 11,41%. Deuxièmement, la différence entre la version actuelle et la version précédente a été enregistrée dans le dossier des échecs. Si vous l'ouvrez, vous verrez une capture d'écran comme celle-ci:

          Test de régression visuelle avec PhantoMCSS

          La capture d'écran met commodément les zones qui ont été modifiées, il est donc facile de repérer la différence.

          accepter les changements

          Maintenant que la différence a été mise en évidence, que devons-nous faire pour accepter le changement? Nous devons en quelque sorte être en mesure de dire à l'outil que nous voulons rester avec la largeur réduite des blocs et accepter la vue actuelle comme la nouvelle norme. Pour ce faire, vous pouvez exécuter la commande de test avec un argument supplémentaire - - Rebase:

          <span><span><span><div</span>></span>Hello, %username%!<span><span></div</span>></span></span>

          Notez les deux tirets doubles. C'est la fa?on de NPM de passer un paramètre à la commande sous-jacente. Ainsi, la commande suivante se traduira par Casperjs test test.js --rebase. Maintenant que nous avons accepté le changement, l'image de base précédente sera remplacée par la nouvelle.

          l'emporter plus loin

          Maintenant que vous avez le respect des bases, vous pouvez commencer à penser à intégrer cet outil dans votre propre flux de travail. Je n'imerai pas dans les détails de cela car il est assez spécifique au projet, mais voici quelques questions à réfléchir:

          • Allez-vous exécuter les tests contre le vrai site Web, ou une sorte de guide de style, où seuls des éléments d'interface utilisateur séparés sont présents?
          • Votre site a-t-il un contenu dynamique? Si oui, les modifications du contenu entra?neront la rupture des tests. Pour éviter cela, vous devrez configurer une version distincte du site Web avec un contexte statique pour exécuter les tests contre.
          • Allez-vous ajouter les captures d'écran dans votre contr?le de version? Oui, vous devriez.
          • Allez-vous prendre des captures d'écran des pages entières, ou des éléments séparés?

          En utilisant cet outil, vous pouvez désormais couvrir les aspects visuels de votre site Web avec des tests automatisés. Avec votre unité et vos tests fonctionnels déjà en place, cette nouvelle stratégie comblera une lacune étroite dans votre frontière de test. Même si vous êtes encore nouveau dans les tests - c'est un bon point de départ!

          Questions fréquemment posées (FAQ) sur les tests de régression visuelle avec PhantoMCSS

          Qu'est-ce que PhantoMCSS et comment cela fonctionne-t-il?

          PhantoMCSS est un outil de test de régression visuelle qui utilise des Phantomjs et ressembler.js pour comparer les captures d'écran des pages Web. Il fonctionne en prenant des captures d'écran de vos pages Web, en les comparant aux images de base et en mettant en évidence les différences. Cela permet aux développeurs d'identifier et de fixer rapidement des incohérences visuelles dans leurs pages Web. PhantoMCSS est particulièrement utile dans les grands projets où les tests manuels peuvent être longs et sujets aux erreurs.

          Comment installer des Phantomcss?

          Phantomcss peuvent être installés à l'aide de NPM, le package Node.js directeur. Vous pouvez l'installer globalement en exécutant la commande npm install -g PhantoMCSS. Alternativement, vous pouvez l'ajouter en tant que dépendance de développement à votre projet en exécutant NPM Installer - Save-Dev Phantomcss.

          Comment utiliser les PhantoMCSS pour les tests de régression visuelle?

          Pour utiliser des phantomcss pour les tests de régression visuelle, vous devez d'abord créer un script de test qui indique aux PhantoMCSS de quoi capturer des captures d'écran de. Ce script peut être écrit en JavaScript ou CoffeeScript. Une fois le script prêt, vous pouvez l'exécuter à l'aide de Phantomjs. Les PhantoMCS captureront ensuite des captures d'écran des éléments spécifiés, les compareront aux images de référence et généreront un rapport montrant les différences.

          Puis-je utiliser des fant?mes avec d'autres cadres de test?

          Oui, PhantomcSS peut être utilisé avec d'autres cadres de test comme Mocha, Jasmine et Qunit. Il peut également être intégré à des systèmes d'intégration continus comme Jenkins et Travis CI.

          Quels sont les avantages de l'utilisation de PhantoMCSS pour les tests de régression visuelle?

          PhantoMCSS offre plusieurs avantages pour les tests de régression visuelle. Il automatise le processus de capture et de comparaison des captures d'écran, ce qui permet aux développeurs de faire beaucoup de temps. Il fournit également un rapport visuel qui facilite les différences de repère entre la ligne de base et les images de test. De plus, PhantoMCSS prend en charge les tests de conception réactifs, permettant aux développeurs de tester leurs pages Web sur différentes tailles d'écran.

          Comment mettre à jour les images de base dans PhantoMCSS?

          pour mettre à jour les images de base dans PhantoMCSS, Vous devez simplement supprimer les anciennes images de base et exécuter le script de test. PhantoMCSS capturera de nouvelles captures d'écran et les utilisera comme nouvelles images de base.

          Les Phantomcss peuvent gérer le contenu dynamique?

          Oui, les Phantomcss peuvent gérer le contenu dynamique. Il permet aux développeurs de spécifier un retard avant de capturer des captures d'écran, ce qui donne au contenu dynamique suffisamment de temps pour charger. Il prend également en charge l'utilisation de rappels pour attendre des événements spécifiques avant de capturer des captures d'écran.

          Comment déboguer les tests dans PhantoMCSS?

          PhantoMCSS offre plusieurs options pour les tests de débogage. Il peut enregistrer les messages à la console, enregistrer les tests échoués sous forme de fichiers d'image et même créer une vidéo de l'exécution du test. Ces fonctionnalités facilitent l'identification et la résolution des problèmes dans vos tests.

          Puis-je personnaliser le processus de comparaison dans PhantoMCSS?

          Oui, PhantoMCSS vous permet de personnaliser le processus de comparaison. Vous pouvez définir le type de comparaison, la tolérance de décalage et les paramètres de sortie. Cela vous donne plus de contr?le sur le processus de comparaison et vous permet de l'adapter à vos besoins spécifiques.

          Quelles sont les alternatives aux PhantoMCSS pour les tests de régression visuelle?

          Il existe plusieurs alternatives aux PhantomcSS pour tests de régression visuelle, y compris les backstopjs, le wraith et les Gémeaux. Ces outils offrent des fonctionnalités similaires aux PhantoMCSS, mais ils peuvent avoir des forces et des faiblesses différentes en fonction de vos besoins spécifiques.

          Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

          Déclaration de ce site Web
          Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

          Outils d'IA chauds

          Undress AI Tool

          Undress AI Tool

          Images de déshabillage gratuites

          Undresser.AI Undress

          Undresser.AI Undress

          Application basée sur l'IA pour créer des photos de nu réalistes

          AI Clothes Remover

          AI Clothes Remover

          Outil d'IA en ligne pour supprimer les vêtements des photos.

          Clothoff.io

          Clothoff.io

          Dissolvant de vêtements AI

          Video Face Swap

          Video Face Swap

          échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

          Outils chauds

          Bloc-notes++7.3.1

          Bloc-notes++7.3.1

          éditeur de code facile à utiliser et gratuit

          SublimeText3 version chinoise

          SublimeText3 version chinoise

          Version chinoise, très simple à utiliser

          Envoyer Studio 13.0.1

          Envoyer Studio 13.0.1

          Puissant environnement de développement intégré PHP

          Dreamweaver CS6

          Dreamweaver CS6

          Outils de développement Web visuel

          SublimeText3 version Mac

          SublimeText3 version Mac

          Logiciel d'édition de code au niveau de Dieu (SublimeText3)

          Sujets chauds

          Tutoriel PHP
          1501
          276
          Tutoriel CSS pour créer des filateurs et des animations de chargement Tutoriel CSS pour créer des filateurs et des animations de chargement Jul 07, 2025 am 12:07 AM

          Il existe trois fa?ons de créer un rotateur de chargement CSS: 1. Utilisez le rotateur de base des frontières pour obtenir une animation simple via HTML et CSS; 2. Utilisez un rotateur personnalisé de plusieurs points pour atteindre l'effet de saut à travers différents temps de retard; 3. Ajoutez un rotateur dans le bouton et basculez les classes via JavaScript pour afficher l'état de chargement. Chaque approche souligne l'importance des détails de conception tels que la couleur, la taille, l'accessibilité et l'optimisation des performances pour améliorer l'expérience utilisateur.

          ATTENTION DES PROBLèMES ET PRéFIXES DE COMPATIBILITé DE BROWSER CSS ATTENTION DES PROBLèMES ET PRéFIXES DE COMPATIBILITé DE BROWSER CSS Jul 07, 2025 am 01:44 AM

          Pour faire face à la compatibilité du navigateur CSS et aux problèmes de préfixe, vous devez comprendre les différences de prise en charge du navigateur et utiliser raisonnablement les préfixes des fournisseurs. 1. Comprendre les problèmes communs tels que Flexbox et le support de la grille, Position: Sticky Invalid et les performances d'animation sont différentes; 2. Vérifier l'état du support de la fonction de confirmation de Caniuse; 3. Utilisez correctement -webkit-, -moz-, -ms-, -o- et autres préfixes du fabricant; 4. Il est recommandé d'utiliser AutopRefixer pour ajouter automatiquement les préfixes; 5. Installez PostCSS et configurez le navigateur pour spécifier le navigateur cible; 6. Gérer automatiquement la compatibilité pendant la construction; 7. Les fonctionnalités de détection modernizr peuvent être utilisées pour les anciens projets; 8. Pas besoin de poursuivre la cohérence de tous les navigateurs,

          Quelle est la différence entre l'affichage: en ligne, affichage: bloc et affichage: bloc en ligne? Quelle est la différence entre l'affichage: en ligne, affichage: bloc et affichage: bloc en ligne? Jul 11, 2025 am 03:25 AM

          HEMAINDIFFERENCESBetweendisplay: Inline, Block, Andinline-BlockInhtml / CSSareLayoutBehavior, SpaceUsage et StylingControl.1.InlineElementsflowWithText, Don'tStartNewLines, Ignorewidth / Height, AndonlyApplyhorizontalPadding / Marges - IdealForninetLetetStyLinSing

          Styling visité les liens différemment avec CSS Styling visité les liens différemment avec CSS Jul 11, 2025 am 03:26 AM

          La définition du style de liens que vous avez visité peut améliorer l'expérience utilisateur, en particulier dans les sites Web à forte intensité de contenu pour aider les utilisateurs à mieux naviguer. 1. Utilisez CSS: Pseudo-classe visité pour définir le style du lien visité, tels que les changements de couleur; 2. Notez que le navigateur permet uniquement la modification de certains attributs en raison des restrictions de confidentialité; 3. La sélection des couleurs doit être coordonnée avec le style global pour éviter la brutalité; 4. Le terminal mobile peut ne pas afficher cet effet et il est recommandé de le combiner avec d'autres invites visuelles telles que les logos auxiliaires ic?nes.

          Création de formes personnalisées avec CSS Clip Path Création de formes personnalisées avec CSS Clip Path Jul 09, 2025 am 01:29 AM

          Utilisez l'attribut Clip-Path de CSS pour recadrer des éléments en formes personnalisées, telles que les triangles, les encoches circulaires, les polygones, etc., sans compter sur des images ou des SVG. Ses avantages incluent: 1. Prend en charge une variété de formes de base telles que le cercle, l'ellipse, le polygone, etc.; 2. Ajustement réactif et adaptable aux terminaux mobiles; 3. Facile à l'animation, et peut être combiné avec le survol ou le javascript pour obtenir des effets dynamiques; 4. Il n'affecte pas le flux de disposition et ne culte que la zone d'affichage. Les usages communs sont tels que le chemin de clip circulaire: cercle (50pxatcenter) et trame de clip Triangle: polygone (50% 0%, 100 0%, 0 0%). Avis

          Comment créer des images réactives à l'aide de CSS? Comment créer des images réactives à l'aide de CSS? Jul 15, 2025 am 01:10 AM

          Pour créer des images réactives à l'aide de CSS, elle peut être principalement réalisée grace aux méthodes suivantes: 1. Utilisez la largeur maximale: 100% et hauteur: Auto pour permettre à l'image de s'adapter à la largeur du conteneur tout en maintenant la proportion; 2. Utilisez les attributs SRCSET et tailles de HTML pour charger intelligemment les sources d'image adaptées à différents écrans; 3. Utilisez l'objet-ajustement et la position d'objet pour contr?ler le recadrage d'images et l'affichage de la mise au point. Ensemble, ces méthodes garantissent que les images sont présentées clairement et magnifiquement sur différents appareils.

          Démystifier les unités CSS: PX, EM, REM, VW, VH Comparaisons Démystifier les unités CSS: PX, EM, REM, VW, VH Comparaisons Jul 08, 2025 am 02:16 AM

          Le choix des unités CSS dépend des exigences de conception et des exigences réactives. 1.PX est utilisé pour la taille fixe, adaptée à un contr?le précis mais au manque d'élasticité; 2.EM est une unité relative, qui est facilement causée par l'influence de l'élément parent, tandis que REM est plus stable en fonction de l'élément racine et convient à la mise à l'échelle globale; 3.VW / VH est basé sur la taille de la fenêtre, adaptée à la conception réactive, mais l'attention doit être accordée aux performances sous des écrans extrêmes; 4. Lors du choix, il doit être déterminé en fonction de la question de savoir si les ajustements réactifs, les relations de hiérarchie d'éléments et la dépendance de la fenêtre. Une utilisation raisonnable peut améliorer la flexibilité et la maintenance de la disposition.

          Quelles sont les incohérences courantes du navigateur CSS? Quelles sont les incohérences courantes du navigateur CSS? Jul 26, 2025 am 07:04 AM

          Différents navigateurs ont des différences dans l'analyse CSS, ce qui entra?ne des effets d'affichage incohérents, y compris principalement la différence de style par défaut, la méthode de calcul du modèle de bo?te, le niveau de support Flexbox et la disposition de la grille et le comportement incohérent de certains attributs CSS. 1. Le traitement de style par défaut est incohérent. La solution consiste à utiliser cssreset ou normaliser.css pour unifier le style initial; 2. La méthode de calcul du modèle de bo?te de l'ancienne version de IE est différente. Il est recommandé d'utiliser la taille d'une bo?te: Border-Box de manière unifiée; 3. Flexbox et Grid fonctionnent différemment dans les cas de bord ou dans les anciennes versions. Plus de tests et utilisent Autoprefixer; 4. Certains comportements d'attribut CSS sont incohérents. Caniuse doit être consulté et rétrogradé.

          See all articles