• E-Commerce
  • Développement

Pérenniser mon activité e-Commerce avec Codeception

anthony_360f3c3132
Anthony Grutter, Chief Technical Officer - Co-fondateur
Le 14 décembre 2017
codeception_9bdb0852ab
  • ecommerce

Lecture :8 minutes

Pour pérenniser son activité e-commerce il est nécessaire de pouvoir garantir le bon état de marche de son site sur la durée. Le déploiement de nouvelles fonctionnalités et ainsi que des corrections est toujours sujet au doute sur d’éventuels régressions et dysfonctionnements qui peuvent être engendrés.

Tous les acteurs du projet ne sont pas toujours conscients des impacts que peut avoir une modification. Tel l’effet papillon, une modification d’un Javascript sur le slideshow de la page d’accueil pourrait bloquer le choix du mode de livraison sur la commande.

Les espaces de validation et tests humains de l’ensemble du système ne sont plus suffisants et seraient trop chronophages à chaque changement.
Les humains sont sujets aux erreurs et manquent de temps; les robots, non !

Codeception va vite devenir votre meilleur ami. Vous pourrez définir ensemble des scénarios de parcours clients et les automatiser dans vos déploiements. Vous allez gagner du temps, éviterez les régressions de code et réduirez votre stress. Allez prendre un café pendant que votre robot Codeception s’occupe de tout.

Concrètement, Codeception, c’est quoi ?

Codeception, c’est une librairie PHP. Il permet d’interpréter un scénario écrit en PHP et le transmet à un “fake browser” pour simuler la navigation.
Codeception permet de faire plusieurs types de tests: unitaire, fonctionnel, d’acceptance. Dans cet article on se limitera aux tests dit d’acceptance.

class SearchTest { public function searchWorks(AcceptanceTester $I, \Codeception\Scenario $scenario) { //Homepage $I->amOnPage('/'); //Do a search $I->fillField('#header-search input', 'Maillot'); $I->pressKey('#header-search input', WebDriverKeys::ENTER); //See results $I->seeNumberOfElements('.product-results li', [1,99]); //Screenshot $I->makeScreenshot(); } }

On communique avec Codeception comme si on lui lisait une histoire :
“ Je suis sur la page d’accueil, je remplis le champ de recherche avec le mot Maillot, j’appuie sur la touche Entrée, je vérifie que je vois entre 1 et 99 résultats, je fais un screenshot ”

C’est grâce aux sélecteurs CSS qu’on pourra manipuler les éléments du DOM. Quoi de plus simple ? Vous trouverez une liste plus complète sur la documentation officielle de Codeception.

Comment installer Codeception pour Magento ?

Vous êtes décidé à vous faire un nouvel ami ? C’est parti !

Step 1. Installez l'exécutable Codeception

cd ~
wget http://codeception.com/codecept.phar
chmod u+x codecept.phar
sudo mv codecept.phar /usr/local/bin/codecept

Step 2. Installez le Driver Web, au choix :

PhantomJS

sudo npm install -g phantomjs
Pour démarrer phantomjs : phantomjs --webdriver=4444

ChromeDriver

Téléchargez le dernier exécutable de ChromeDriver.
Vous pouvez également le déplacer dans /usr/local/bin/ pour un accès plus rapide. Pour démarrer Chromedriver : chromedriver --url-base=/wd/hub

Step 3. Initialisez Codeception dans votre projet.

codecept bootstrap
Cette commande va initialiser la structure des dossiers et fichiers de configuration nécessaires au fonctionnement de Codeception.

Step 4. Configurez Codeception

Ouvrez le fichier acceptance.suite.yml et modifiez-le pour :
actor: AcceptanceTester
modules:
enabled:
- WebDriver:
#browser: chrome
#port: 9515
browser: phantomjs
port: 4444
url: 'https://www.google.fr/'

En fonction du Driver que vous avez installé et démarré, changez le browser et le port.

 

Step 5. Rédigez votre test d’acceptance

Créez un nouveau fichier nommé TestCest.php dans le répertoire tests/acceptance. Ce répertoire se trouve à la racine de votre projet après avoir initié le bootstrap (voir step 3.) Et placez-y le code suivant :

<?php
class TestCest {
  public function googleHomepageWorks(AcceptanceTester $I) {
      $I->amOnUrl('https://www.google.fr/');
      $I->seeElement('img#hplogo');
  }
}

Step 6. Lancez votre test

Vous êtes fin prêt pour faire travailler votre nouveau petit robot. Toujours en ligne de commande, tapez :

codecept run

codeception preview

Si vous souhaitez plus d’informations sur la mise en place de Codeception, référez-vous au site officiel, où vous y trouverez de nombreux exemples d’utilisation.

Que faire des ces résultats et comment les exploiter ?

Ça y est votre petit robot travaille pour vous. Mais c’est à vous d’exploiter le fruit de son labeur :

  • Consultez le rapport généré
  • Vérifiez les screenshots générés
  • Générez un rapport HTML avec l’option ‘--html’ qui vous montrera les blocages et les raisons
  • Intégrez les tests de votre robot en pre et post-deployment avec Jenkins par exemple : ne déployez la production que lorsque les scénarios de tests sont tous en succès.

Pour une utilisation classique sur Magento, il serait essentiel de rédiger à minima les tests du parcours d’achat d’un client : vérifiez l’ajout au panier, le passage de commande et vérifiez au passage que les éléments sur les différentes pages sont bien présents, comme les modes de livraison, les ventes croisées, etc.

Nos articles

Découvrir aussi

Abonnez-vous au blog pour ne rien louper