Stress Test PHP / Node.js

Présentation du projet :

Ce projet a été réalisé durant mon stage dans l’entreprise INFOCOB

Le CRM Mobile réalisé par Infocob est une application web, sous PHP. Infocob propose via sa solution de CRM, de faciliter la tâche à de nombreux métiers. Le but de ce projet était de voir comment nous pouvions passer cette application web en Progressive Web App. Derrière ce nom ce cache de nombreux atouts, à savoir une accessibilité hors ligne, des notifications push, un meilleur SEO, entièrement responsive… Parmi ceux là, Infocob s’intéressait particulièrement au cache permettant l’accessibilité hors ligne et les notifications push. Leur CRM Mobile était déjà doté d’un cache mais pas comme celui-ci.

Dans ce projet, en lien avec l’autre projet “Création d’une PWA“, j’ai réalisé des tests de performance entre Node.js et PHP.

Contexte :

J’ai mis en place deux petits sites, un sous PHP, un sous Node.js et j’ai effectué différents tests sur leur performance à envoyer ou afficher des données venant d’une base de données sous le SGBD FirebirdSQL.

Objectifs :

  • Création d'un site sous PHP
  • Création d'un site sous Node.js
  • Développement de différents codes pour afficher et envoyer des données
  • Enregistrement des tests avec Apache JMeter

Langages et technologies utilisées :

  • Node.js
  • PHP
  • FirebirdSQL
  • Apache JMeter
  • FlamRobin Database Admin

Exemple de code :

Ce code permet d’insérer une image dans la base de données Firebird depuis PHP, directement en binaire (BLOB).
public static function add()
{
    $img = file_get_contents($_FILES['img']['tmp_name']);

    $detail = new \Detail\Detail();
    $detail->h_detail = $img;
    $detail->insert();
}

Exemple de résultat :

Compétences acquises

  • A 1.1.2 : Étude de l'impact de l'intégration d'un service sur le système informatique
  • A 1.2.2 : Rédaction des spécifications techniques de la solution retenue
  • A 1.2.4 : Détermination des tests nécessaires à la validation d'un service
  • A 1.3.1 : Test d'intégration et d'acceptation d'un service
  • A 1.4.1 : Participation à un projet
  • A 2.3.1 : Identification, qualification et évaluation d'un problème
  • A 4.1.6 : Gestion d'environnements de développement et de test
  • A 4.1.8 : Réalisation des tests nécessaires à la validation d'éléments adaptés ou développés