Passer au contenu principal
Toutes les collectionsFonctionnalités et API
Utiliser K6 pour tester la charge de votre application brainCloud
Utiliser K6 pour tester la charge de votre application brainCloud

Un exemple simple de script K6

Jason Liang avatar
Écrit par Jason Liang
Mis à jour il y a plus d’une semaine

k6 est un framework de test de charge open source basé sur JavaScript.

Avec k6 et la librairie client JavaScriptK6 de brainCloud, les développeurs peuvent facilement créer des tests de charge qui imitent le comportement d'une application en appelant les API brainCloud et les scripts Cloud Code personnalisés.

Remarque : ceci ne constitue pas une approbation officielle de k6. Nous n'avons aucun lien avec k6, et vous n'êtes pas limité à son utilisation pour vos tests de charge.

Lorsque vous travaillez sur le test de charge de vos applications brainCloud, nous vous recommandons vivement les éléments suivants :

  • Vous choisissez un framework de test de charge capable d'utiliser l'une des librairies clientes brainCloud disponibles. (Notre protocole client est complexe et ne convient pas aux frameworks de test de charge simples basés sur HTTP ou REST).

  • Vous coordonnez votre approche et vos tests avec un membre de l'équipe d'ingénierie/support brainCloud. Ce qui est un test pour vous peut ressembler à une attaque par déni de service pour nous !

Ce tutoriel est un exemple simple de création d'un test de charge simple pour votre application avec k6. Une approche similaire peut être adoptée avec d'autres outils.

---

Installation

Pour commencer :

  • Installez K6 sur votre machine locale

  • Demandez l'exemple de package K6.zip au support brainCloud

Une fois décompressé, vous trouverez les éléments suivants :

  • lib/brainCloudK6.js- une version compatible K6 de la librairie JavaScript brainCloud

  • simpleExample/simpleTestScript.js- un exemple de script de test

  • simpleExample/config.js- paramètres de configuration personnalisables pour exécuter le script

Vous devriez pouvoir configurer et exécuter l’exemple de script à partir du répertoire simpleExample.

---

Préparation de l'application

Pour exécuter cet exemple, vous devrez d’abord créer un exemple d’application qui répond aux critères suivants :

  • Est activé pour la plateforme Web <- Les applications JavaScript s'affichent toujours comme "Web"

  • A un classement nommé "daily"

  • Le RTT est activé

  • Le Chat est activé, avec un canal de chat global nommé "main"

Les instructions pour créer rapidement une telle application sont :

  • Connectez-vous au portail de conception

  • Accédez à Équipe | Gérer | Apps et cliquez sur [+ Nouvelle application]

  • Donnez un nom à l'application, activez les fonctionnalités de jeu (si demandé) et assurez-vous d'activer au moins la plateforme Web. Cliquez ensuite sur [Créer].

  • Accédez à Conception | Info de base de l'App | Réglages avancés et cochez la case Real-time Tech (RTT) Activé.

  • Accédez à Conception | Classements | Config Classements, puis cliquez sur le signe (+ Nouvelle Configuration De Classement) en haut à droite. Saisissez "daily"pour l'ID de classement et définissez le type de rotation sur "Quotidien". Cliquez sur [Sauvegarder et Fermer] .

  • Accédez à Conception | Messagerie | Clavarder et activez le service de clavardage. Cliquez sur [Sauvegarder] .

  • Allez dans Conception | Messagerie | Canaux de clavardage, cliquez sur [+ Nouveau canal] et créez un canal avec le code "principal". Le nom et la description du canal sont libres. Cliquez sur [Sauvegarder] .

  • Enfin, allez dans Conception | Info de base de l'App | IDs de l'Application et notez l'ID de l'App et la clé secrète de l'App. Vous en aurez besoin pour le fichier config.js.

Remarque : si l'application est créée sur le BaaS public brainCloud, elle sera limitée à 100 utilisateurs actifs quotidiens. Vous devrez mettre à niveau votre forfait pour tester des niveaux d'utilisation plus élevés.

---

Configuration de test

Clonez (ou renommez) le fichier simpleExample/config-template.js - en créant un nouveau fichier appelé config.js.

Utilisez un éditeur de texte pour modifier le fichier simpleExample/config.js.

// Configurer le serveur d'API brainCloud et les informations de l'application
export const BRAINCLOUD_APIURL = "https://api.bc.xxxxxxx.com";
export const BRAINCLOUD_APPID = "<your-app-id>";
export const BRAINCLOUD_APPSECRET = "<your-app-secret>";
export const BRAINCLOUD_APPVERSION = "1.0.0";

// Configurer les informations du projet K6
export const K6_CLOUD_PROJECT_ID = "<your-k6-project-id>";

// Configurer le scénario à exécuter. Remarque : vous pouvez également remplacer
// en définissant l'environnement K6_TEST_SCENARIO ou le paramètre de ligne de commande
export const K6_TEST_SCENARIO = "sanity5UserTestScenario";

// Préfixe utilisateur - préfixe à utiliser pour les utilisateurs générés.
// Le script ajoutera un compte à la fin pour chaque utilisateur
// - donc utilisateur+1, utilisateur+2, etc.
// En cas d'exécution manuelle sur plusieurs serveurs, faites varier ce préfixe
// pour éviter que les utilisateurs du serveur n'entrent en conflit les uns avec les autres
// - définissez sur "load1+user" pour le 1er serveur, "load2+user" pour le 2ème, etc.
export const USERNAME_PREFIX = "user+";

Au minimum, vous devez remplacer les éléments suivants :

  • BRAINCLOUD_APIURL - Définissez le point de terminaison de l'API de votre instance brainCloud. Si vous utilisez le service BaaS public brainCloud, utilisez https://sharedprod.braincloudservers.com. Pour la plupart des instances privées, remplacez simplement le "portal" au début de l'URL du portail de conception par "api"

  • BRAINCLOUD_APPID - l'appId de votre application nouvellement créée

  • BRAINCLOUD_APPSECRET - la clé secrète de votre application nouvellement créée

Notez que l'identifiant K6_CLOUD_PROJECT_ID n'est requis que si vous exécutez le test via le service cloud k6.io. Il n'est pas requis pour une exécution locale.

Script de test

Examinez le script simpleExample/simpleTestScript.js.

Vous noterez ce qui suit :

  • Il commence par l'importation de diverses librairies K6, la librairie brainCloudK6 et le fichier config.js .

  • Il définit ensuite certaines statistiques personnalisées à collecter et des seuils pour évaluer les résultats des tests.

  • La section suivante définit différents scénarios de test, allant de simples tests de cohérence de 5 et 50 utilisateurs à des scénarios plus complexes de 100, 500 et 1 000 utilisateurs. Le scénario à exécuter est spécifié via la propriété K6_TEST_SCENARIO dans config.js

  • Finalement, les tests eux-mêmes ne sont pas si compliqués - voir l'extrait ci-dessous

// 4 - Récupérer un identifiant de canal en préparation pour l'étape suivante
var channelId = "";
_bc.chat.getChannelId("gl", "main", result =>
{
if ( checkForAndRecordErrors("chat.getChannelId()", result) ) {
channelId = result.data.channelId;
}
});
sleep(INTERVAL);

// 5 - Se connecter à un canal de clavardage
_bc.chat.channelConnect( channelId, 10, result =>
{
checkForAndRecordErrors("chat.channelConnect()", result);
});
sleep(INTERVAL);

// 6 - Publier un message de clavardage
_bc.chat.postChatMessageSimple(channelId, "Chat message from K6", true, result =>
{
checkForAndRecordErrors("chat.postChatMessageSimple()", result);
});
sleep(INTERVAL);

Exécution de K6 localement

Pour exécuter le test, exécutez ce qui suit à partir du répertoire simpleExample :

> k6 exécute simpleTestScript.js

Vous verrez les journaux de la console et certains statuts au fur et à mesure de la progression des tests :

Une fois terminé, les résultats du test seront affichés.

Remarque : l’utilitaire k6 offre la possibilité de personnaliser le format des résultats et de s’intégrer à plusieurs systèmes externes.

Exécution via K6.io

K6.io propose un service d'exécution de scripts distribués via le cloud. Vous pouvez obtenir un compte gratuit pour 50 petits tests.

Pour exécuter un test via le service cloud, copiez la propriété projectId du fichier K6.io dans la propriété K6_CLOUD_PROJECT_ID du fichier config.js.

Tout d’abord, vous devrez vous connecter via l’outil de ligne de commande :

> k6 login cloud
email: john@smith.com
password: xxx

Exécutez ensuite le script via ce qui suit :

> k6 cloud simpleTestScript.js

Vous pouvez ensuite visualiser les résultats via K6.io.

Notez que les résultats disponibles via k6.io (voir ci-dessus) sont plus impressionnants que les résultats standards disponibles via l'outil en ligne de commande.

Résumé

K6 est un outil + service utile pour créer et exécuter rapidement des tests de charge brainCloud simples.

Avez-vous trouvé la réponse à votre question ?