


Tests automatisés gérables et maintenables à l'aide de PHP WebDriver
Dans le processus de développement logiciel, les tests automatisés sont progressivement devenus une fonctionnalité standard de l'équipe de développement. Il peut aider l'équipe de développement à trouver et à corriger les bogues plus rapidement, garantissant ainsi la qualité et la fiabilité des logiciels. Cependant, rédiger et maintenir des tests automatisés est souvent une tâche fastidieuse et complexe. Cet article explique comment utiliser PHP WebDriver pour implémenter des tests automatisés gérables et maintenables.
PHP WebDriver est une bibliothèque PHP. Il s'agit d'une implémentation du protocole WebDriver et peut être utilisée pour contrôler le navigateur. Le protocole WebDriver est un standard utilisé pour contrôler les navigateurs et peut interagir entre différents langages et plateformes.
PHP WebDriver peut gérer plusieurs types de navigateurs, fournit une plate-forme stable pour les tests et fournit une API facile à utiliser. Voici un exemple écrit en utilisant PHP WebDriver :
use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverWebDriverBy; $host = 'http://localhost:4444/wd/hub'; // Selenium server 的地址 $driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome()); // 访问页面 $driver->get("https://www.baidu.com/"); // 输入搜索词 $input = $driver->findElement(WebDriverBy::id('kw')); $input->sendKeys('php webDriver'); // 点击搜索按钮 $button = $driver->findElement(WebDriverBy::id('su')); $button->click(); // 等待页面加载完毕 $driver->wait()->until( WebDriverExpectedCondition::titleContains('php webDriver') ); // 获取搜索结果 $results = $driver->findElements(WebDriverBy::cssSelector('.result h3')); // 打印搜索结果 foreach ($results as $result) { echo $result->getText() . " "; } // 关闭浏览器 $driver->quit();
Dans le code ci-dessus, nous créons d'abord un objet RemoteWebDriver et spécifions l'URL du service Selenium. Ensuite, nous avons visité la page d'accueil de Baidu, entré « php WebDriver » dans le champ de recherche et cliqué sur le bouton de recherche. Ensuite, nous attendons que la page se charge, obtenons les résultats de la recherche et affichons les résultats de la recherche. Finalement, nous avons fermé le navigateur.
Vous pouvez voir qu'il est facile d'écrire des scripts de test à l'aide de PHP WebDriver. Voyons comment utiliser PHP WebDriver pour écrire un test automatisé gérable et maintenable.
- Utiliser le modèle d'objet de page
Le modèle d'objet de page est un modèle de conception qui résume la page du navigateur en un objet. En encapsulant les éléments et le comportement de la page dans cet objet, vous facilitez l'écriture et la maintenance du code de test. Nous pouvons créer une classe BasePage pour implémenter certaines opérations de base pour toutes les pages.
<?php namespace AppPage; use FacebookWebDriverRemoteRemoteWebDriver; class BasePage { protected $driver; public function __construct(RemoteWebDriver $driver) { $this->driver = $driver; } public function open($url) { $this->driver->get($url); } public function close() { $this->driver->quit(); } }
L'exemple ci-dessus montre la structure de base d'une classe BasePage, qui contient certaines opérations de base, telles que l'ouverture d'un site Web et la fermeture du navigateur.
Ensuite, nous créons une classe SearchPage, qui est utilisée pour rechercher les pages Baidu. Dans cette classe, nous définissons une méthode de recherche capable de rechercher des mots-clés spécifiés et de renvoyer des résultats de recherche.
<?php namespace AppPage; use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverWebDriverBy; use FacebookWebDriverWebDriverExpectedCondition; class SearchPage extends BasePage { private $url = 'https://www.baidu.com/'; public function __construct(RemoteWebDriver $driver) { parent::__construct($driver); } public function search($keyword) { $this->open($this->url); $input = $this->driver->findElement(WebDriverBy::id('kw')); $input->clear(); $input->sendKeys($keyword); $input->submit(); $this->driver->wait()->until( WebDriverExpectedCondition::titleContains($keyword) ); return $this->getResults(); } private function getResults() { $elements = $this->driver->findElements(WebDriverBy::cssSelector('.result h3')); $results = []; foreach ($elements as $element) { $results[] = $element->getText(); } return $results; } }
Comme mentionné ci-dessus, la classe SearchPage encapsule l'opération de recherche et fournit une méthode de recherche qui transmettra les mots-clés et effectuera la recherche. Il utilise l'API de WebDriver pour localiser les éléments de la page et manipuler les actions. La méthode getResults est utilisée pour obtenir les résultats de la recherche.
- Tests pilotés par les données
Les tests pilotés par les données sont une technique de test qui utilise différentes données d'entrée pour vérifier plusieurs aspects de la même fonctionnalité. Dans notre exemple, nous pouvons utiliser des tests basés sur les données pour vérifier les résultats de la recherche pour différentes entrées.
<?php namespace AppTest; use AppPageSearchPage; use FacebookWebDriverRemoteRemoteWebDriver; class SearchTest extends BaseTest { /** * @dataProvider keywordProvider */ public function testSearch($keyword) { $searchPage = new SearchPage($this->driver); $results = $searchPage->search($keyword); $this->assertGreaterThan(0, count($results), "Search for '$keyword' returned no results"); $this->assertContains($keyword, implode('', $results), "Search for '$keyword' did not return relevant results"); } public function keywordProvider() { return [ ['php WebDriver'], ['facebook WebDriver'], ['selenium WebDriver'], ]; } }
Comme vous pouvez le voir, nous avons utilisé l'annotation dataProvider de PHPUnit pour générer le fournisseur de données pour la méthode de test. Dans notre exemple, nous avons transmis trois données de test : "php WebDriver", "facebook WebDriver" et "selenium WebDriver". Dans la méthode testSearch, nous instancions un objet SearchPage et exécutons la méthode de recherche avec chaque donnée de test. Nous affirmons ensuite l'exactitude des résultats de la recherche.
- Exécuter des tests
Exécuter des tests avec PHPUnit est très simple. Il nous suffit d'exécuter la commande suivante :
phpunit SearchTest.php
Ensuite, PHPUnit utilisera les classes et méthodes de test que nous avons fournies et rapportera les résultats du test.
Résumé
Dans cet article, nous avons appris à utiliser PHP WebDriver pour réaliser des tests automatisés gérables et maintenables. Nous avons présenté les concepts de base du modèle d'objet de page et des tests basés sur les données, et avons démontré, à l'aide d'un exemple de code, comment utiliser PHP WebDriver pour implémenter ces méthodes. J'espère que cet article vous aidera à mieux comprendre les principes et les pratiques des tests automatisés.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
