Tests web automatiques avec Ruby, Capybara et Selenium

Ce tutoriel est axé sur vous montrer comment ils peuvent être créés projets pour tester automatiquement les pages Web, a une explication superficielle avec un exemple de test sur la page YouTube. Vous devrez avoir des notions de base de Ruby pour bien le comprendre.

NoterCe test a été lancé sous Ubuntu 15.10, je recommande donc d'utiliser Linux pour son exécution, cependant j'ai mis comment installer les programmes sous Windows.

1. Installer les exigences nécessaires


Nous avons besoin de Ruby et de ses joyaux (si vous utilisez Mac, vous l'aurez déjà installé).

Installer Ruby sous Windows
Pour télécharger l'installeur, cliquez sur le bouton suivant :

TÉLÉCHARGER RUBY POUR WINDOWS

Tout d'abord, nous téléchargeons et installons RUby installateur, (dans l'installation assurez-vous de cocher l'option pour ajouter Ruby au CHEMIN de Windows), puis le kit de développement, extrayez son contenu sur le disque C dans un dossier que vous devrez créer je l'appelle Devkit, mais vous pouvez l'appeler comme vous voulez (Voir l'image suivante).

Maintenant, ouvrez le cmd Windows et exécuter les instructions suivantes:

 chdir C: \ Devkitruby dk.rb initruby dk.rb installer

Installation de Ruby sous Linux
Dans les versions les plus récentes, Ruby est déjà installé, mais juste au cas où, vous devez courir:

 sudo apt-get install rubysudo apt-get install rubygems
[couleur = # a9a9a9] Installation de Ruby [/ couleur]

Installez le reste des programmes nécessaires (Valable pour tous les OS)
Besoin installer le concombre, qui est un outil de test qui nous aide à effectuer BDD.

 gem installer concombre
Nous avons aussi besoin de installer Capybara, qui est un langage spécifique qui nous aidera à interagir avec les pages Web.
 gem installer capybara
Et enfin il faut installer du sélénium, est un pilote pour Capybara, utilise le moteur JavaScript du navigateur et nous permet de voir comment le test est passé visuellement.
 gem installer sélénium-webdriver
C'est un peu lent.

2. Créer le projet


Une fois que nous aurons tout installé, nous allons créer la structure de notre projet.

Étape 1
Créons un dossier, appelons-le Test-Sélénium. Ce sera le dossier qui contiendra tous les fichiers dont nous aurons besoin, nous pouvons donc le considérer comme le dossier racine du projet.

Étape 2
Dans le dossier Test-Sélénium (dossier racine) créons un dossier appelé fonctionnalités. Qui contiendra tout ce dont vous avez besoin pour exécuter le processus.

Étape 3
Dans le dossier des fonctionnalités, nous créons 2 autres dossiers (définitions_étapes Oui Support) et aussi un fichier appelé test.fonction.

Étape 4
Dans step_definitions, nous allons créer un fichier Ruby appelé step_Youtube.rb. et maintenant dans le dossier de support, nous allons créer un autre fichier Ruby appelé env.rb.

Étape 5
Nous remplissons le fichier test.feature, il sera écrit en langage formel (Gherkin), il définit le test que l'on veut passer dans un langage qui est compris par tout le monde (Le test lui-même est la partie scénique, le reste est une description) In. Son contenu est le suivant :

 #langue : est Caractéristique : Aller sur youtube En tant que testeur je veux entrer sur youtube pour tester la recherche Pour savoir si tout fonctionne bien Scénario : Tester youtube Depuis que je suis sur la page youtube Quand je recherche "Metallica One" Alors je peux entrer et voir la vidéo "https://www.youtube.com/watch?v=iT6vqeL-ysI"
Dans la partie étape, nous ne pouvons pas utiliser d'accents ou de caractères étranges, et les variables sont entourées de guillemets (ce seront les données transmises à notre code Ruby).

Étape 6
C'est au tour du fichier step_Youtube.rb, c'est le code Ruby qui va passer nos tests, regardez le code qui a (Donné, Quand, Donc) chaque fonction fait référence à une ligne, celles qui avaient auparavant des "variables" reçoivent des paramètres (1 pour chaque variable dans le .feature ) , pour cela, il est nécessaire d'utiliser des expressions régulières. Sous le code.

 Depuis / je suis sur la page youtube $ / fais visiter 'https://www.youtube.com/?hl=en&gl=EN' fin Quand (/ je recherche "([^"] *) "$ / ) do | search | fill_in 'search_query',: with => search click_button 'Search' end Ensuite (/ Je peux entrer et regarder la vidéo "([^"] *) "$ /) do | video | résultats = tout ('a').map {| a | a ['href']} sinon results.include? (vidéo) lever "Vidéo introuvable" fin de visite (vidéo) fin
Dans ce code, dans la deuxième fonction, vous pouvez voir search_query, ce nom que je n'ai pas inventé est l'attribut de nom que possède le champ de recherche Youtube.

L'instruction: résultats = tout ('a').map {| a | un ['href']}Ce qu'il fait, c'est obtenir une liste de tous les éléments a sur la page, et à partir de cette liste, il obtient les valeurs des attributs href, les stockant dans la variable de résultat, et de cette manière nous pouvons voir si le site Web que nous voulons à visiter est sur la page, Dans cet exemple, cela dépendra de si la chanson apparaît sur la première page, donc si le test n'apparaît pas, il sortira en rouge et si tout n'est pas en vert, je montrerai une image à la fin de la sortie).

Étape 7
Nous allons remplir le dernier fichier env.rb, c'est un fichier de configuration, il indiquera la langue à utiliser, les drivers, etc. Dans ce cas, nous utilisons Capybara et Selenium.

 nécessite 'capybara' nécessite 'capybara / dsl' Capybara.default_driver =: selenium module Helpers def without_resynchronize page.driver.options [: resynchronize] = false yield page.driver.options [: resynchronize] = true end end World (Capybara :: DSL, assistants)
Ici vous avez le code.

3. Exécuter le projet


Il est temps de exécuter notre projet pour tester Youtube.

Étape 1
Nous ouvrons un terminal ou un cmd et allons dans le dossier Testing-Selenium, où se trouve tout notre projet précédemment créé.

Étape 2
Nous écrivons concombre et nous donnons entrer, Cucumber cherchera dans le dossier des fonctionnalités les fichiers .feature (dans ce cas, il n'y en a qu'un 1) et les étapes (fichiers Ruby) de ces .features. S'il est correct, nous verrons comment le navigateur s'ouvre et commence à exécuter les tests. Si vous n'avez pas défini les fonctions Ruby, un écran apparaîtra indiquant que les étapes ne sont pas définies, comme l'image suivante :

Si tout se passe correctement, vous finirez par avoir un écran comme celui-ci :

NoterS'il vous donne un avertissement et ne peint pas de couleur dans Windows, visitez ce référentiel.

Si vous voulez un test plus rapide, vous aurez besoin d'un navigateur sans interface graphique (Phantomjs) et de Poltergeist qui est un pilote pour Capybara (le même que Selenium) mais qui se connecte avec Phantomjs.

  • Installez Poltergeist :
     gem installer poltergeist
  • Installez Phantomjs :
     gem installer phantomjs

Si vous souhaitez télécharger l'intégralité du projet, je joins un zip (rappelez-vous que le test a été réussi dans Ubuntu):

Test-Selenium.zip 1.71K 167 téléchargements

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave