Matériel explicatif interne. Un aperçu des tests automatisés avec Selenium Webdriver.
De nombreux sites sont écrits comme un framework (bibliothèque) pour tester des applications Web, mais il peut être plus facile de comprendre l'expression «outil RPA spécialisé pour les navigateurs Web».
En programmant les opérations effectuées par des humains sur le navigateur et en créant un "robot d'exploitation du navigateur", l'effort de test pendant le développement de l'application Web peut être réduit. Je pense que ce qui suit sont les mérites.
L'effort de test lors du développement d'une application Web est enregistré comme un coût de développement, mais je pense que ce coût de test a tendance à être "jetable". En créant un scénario de test dans Selenium, il peut devenir un «héritage» qui peut être utilisé par la suite.
* À l'intérieur du PC Image d'un robot (Selenium) dans.
Utilisez un outil appelé Selenium Webdriver. Vous pouvez contrôler les pages Web (saisie de caractères, pression de bouton, etc.) en exécutant l'API Webdriver à partir de n'importe quel langage de programmation (C #, Groovy, Java, Perl, PHP, Python, Ruby et Scala: par wikipedia). Je peux le faire. Cette fois, je vais vous présenter comment écrire avec Java. L'exportation suivante est un modèle standard lors de l'utilisation d'IE.
System.setProperty("webdriver.ie.driver", "./driver/32/IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);
Le contrôle réel peut être effectué avec la syntaxe suivante.
driver.findElement(By.xpath("PATH_TO_TARGET")).OPERATION("PARAMETER");
La signification de cette syntaxe est de spécifier l'élément à contrôler avec "PATH_TO_TARGET", de donner le paramètre spécifié avec "PARAMETER" lorsque l'élément est trouvé et d'effectuer l'opération spécifiée avec ".OPERATION". La méthode de réglage de "PARAMETER" et ".OPERATION" est expliquée ci-dessous.
Afin de contrôler un élément à l'écran, il est nécessaire de spécifier "où l'élément contrôlé est (position)" d'une manière ou d'une autre. La méthode de spécification des "coordonnées (x, y)" sur l'écran peut vous venir à l'esprit en premier, mais si vous utilisez des coordonnées, la position sera différente en fonction de la taille de l'affichage ou de la fenêtre, elle échouera donc à l'exécution. On craint qu'il y ait plus de cas (faible précision d'exécution). Par conséquent, Selenium vous permet de spécifier des éléments de manière précise et indépendante des coordonnées.
Par exemple, le champ de saisie du mot de recherche de Yahoo commence par la balise et se termine par la balise , comme indiqué dans l'image ci-dessus.
Le chemin entre et est appelé xpath. Le xpath de l'élément d'entrée est le suivant.
/html/body/div[1]/div[1]/div[3]/form/fieldset/div[1]/p/label/input
Maintenant que vous savez identifier un élément, vous devez spécifier l'action à entreprendre sur cet élément (partie .OPRERATION). Les principaux sont les clics et la saisie de chaîne, comme mentionné ci-dessus.
opération | OPERATION |
---|---|
Cliquez sur | click |
Saisie de la chaîne de caractères | sendkeys |
Voici un exemple de clic sur un lien hypertexte.
driver.findElement(By.xpath("PATH_TO_TARGET")).click();
Voici un exemple de saisie d'une chaîne de caractères dans l'élément d'entrée.
driver.findElement(By.xpath("PATH_TO_TARGET")).sendkeys("PARAMETER");
Quiconque a touché à n'importe quel langage de programmation peut le faire. J'ai présenté plus tôt
driver.findElement(By.xpath("PATH_TO_TARGET")).OPERATION("PARAMETER");
C'est très simple car il suffit de l'appliquer et d'organiser les processus automatisés. Il est nécessaire de modifier légèrement le style d'écriture en fonction du contrôle sur l'écran que vous souhaitez contrôler, mais fondamentalement, si vous vous souvenez des deux types introduits précédemment et de la méthode de contrôle de la zone de liste déroulante (celle-ci a également une norme), 7 ~ Il semble que 80% du traitement puisse être couvert.
Comme pour le test manuel (frappe sur une touche), il est fondamentalement nécessaire de faire un jugement (réussite / échec) du résultat pour l'entrée donnée. Il est facile de créer un cas de test à l'aide d'un cadre de test tel que JUnit et de porter un jugement. Nous allons introduire deux types de méthodes de jugement.
C'est la méthode standard. Le résultat obtenu pour l'entrée est extrait de l'écran et comparé à la valeur préparée à l'avance par assert. Dans le cas de JUnit, vous pouvez voir en un coup d'œil le scénario de test qui a échoué car le résultat du jugement était faux.
Selenium a également une fonction pour prendre une capture d'écran, qui est utilisée pour obtenir l'image souhaitée et la comparer avec l'image de valeur attendue. Cela demande beaucoup de travail par rapport au cas des chaînes de caractères, mais c'est un moyen efficace pour les tests de régression lors de la mise à jour de la version du serveur d'applications Web et de la version du navigateur utilisé. Je vais omettre l'introduction détaillée, mais vous pouvez facilement et à peu de frais automatiser la comparaison d'images en utilisant un logiciel tel que ImageMagic.
Créer un exemple de code. https://github.com/knsquai/BrowserAutoTest
Nous recherchons des amis pour travailler avec nous pour promouvoir l'automatisation des tests. https://www.nittsu-infosys.com/recruit/2019/index.html
Recommended Posts