Utiliser Business Central Performance Toolkit

Effectué

Business Central Performance Toolkit vous aide à suivre et à comparer les performances entre les différentes versions de votre solution, afin de vous assurer que les modifications apportées au code n’ont pas d’impact négatif sur les performances des clients abonnés.

Business Central sert souvent de plateforme évolutive sur laquelle les ISV et les VAR offrent des solutions verticales et des personnalisations destinées à des clients spécifiques. Il est donc dans l’intérêt de tous de maintenir des niveaux de performance élevés. Afin de préserver les performances des clients et l’application des mises à jour majeures et mineures de ces solutions et personnalisations, nous devons nous assurer que les modifications de code n’ont pas d’impact négatif sur les performances.

Business Central Performance Toolkit vous permet de suivre et de comparer les performances des différentes versions de vos solutions. Lors de l’intégration de nouveaux clients dans Business Central, en particulier les plus importants, le consultant et le client doivent être assurés que Business Central est capable de prendre en charge les charges actuelles et prévues afin de répondre aux besoins de l’entreprise. Grâce à Business Central Performance Toolkit, les consultants peuvent simuler de telles charges et s’assurer de la capacité de Business Central à prendre en charge des charges client spécifiques.

Business Central Performance Toolkit met à la disposition des consultants des outils répartis dans deux extensions :

  • Business Central Performance Toolkit

  • Business Central Performance Toolkit - Exemples

Extension Boîte à outils des performances

Cette extension est destinée aux fournisseurs de solutions indépendants (ISV) et aux revendeurs à valeur ajoutée (VAR) qui développent des solutions verticales et personnalisent Business Central pour leurs clients. Dans ce type de collaboration, les choses changent souvent entre les versions publiées des deux côtés, il est donc important que les ISV et les VAR puissent s’assurer que les nouvelles versions de leurs solutions n’introduisent pas de régressions de performances à mesure que le volume d’utilisateurs augmente. Afin d’aider les développeurs dans cette tâche, la boîte à outils des performances leur permet de simuler des charges de travail dans des scénarios réalistes, afin de comparer les performances des différentes versions de leurs solutions.

En bref, la boîte à outils des performances aide à répondre à des questions concernant, par exemple, la prise en charge par une solution pour Business Central d’un nombre X d’utilisateurs réalisant telle action tandis que d’autres opérations sont en cours. Elle ne répond toutefois pas aux questions concernant, par exemple, le nombre de commandes que Business Central peut traiter par heure.

Il est important de noter que vous pouvez utiliser la boîte à outils uniquement dans des environnements de bac à sable et des images Docker. Vous ne pouvez pas l’utiliser dans un client de production.

La boîte à outils des performances est composée de deux extensions, la boîte à outils des performances, disponible gratuitement sur AppSource, et les exemples de tests BCPT, que vous pouvez télécharger à partir du référentiel ALAppExtensions sur GitHub.

Nous vous conseillons de télécharger et d’installer les deux extensions pour pouvoir profiter pleinement de la boîte à outils.

Pour installer l’extension Boîte à outils des performances, procédez de la manière suivante.

  1. Dans votre environnement de bac à sable, ouvrez la page Gestion des extensions.

  2. Sur la page Gestion des extensions, sélectionnez Gérer, Marché des extensions.

  3. Dans la page qui s’ouvre, effectuez une recherche sur Boîte à outils des performances, puis cliquez sur Obtenir maintenant.

  4. Dans la page qui s’ouvre, saisissez vos informations, puis cliquez sur Continuer.

  5. Sur la page qui s’ouvre, cliquez sur Installer.

  6. Sur la page de confirmation qui s’ouvre, cliquez sur OK.

  7. La boîte à outils des performances est maintenant installée.

Pour installer les exemples de boîte à outils des performances, procédez de la manière suivante :

  1. Créez un projet AL dans VSCode.

  2. Dans app.json, définissez les dépendances de la manière suivante :

    ID : 75f1590f-55c5-4501-ae63-bada5534e852

    Éditeur : Microsoft

    nom : Performance Toolkit

    version : 17.1.0.0

  3. À partir de l’emplacement GitHub BCPT-SampleTests, téléchargez (ou extrayez) le dossier src dans votre projet.

  4. Renumérotez les objets dans votre plage d’objets, par exemple [50,000..99,9999].

  5. Dans le fichier TestCodeunitsWithParams.Enum.al, veillez à renuméroter les valeurs enum de sorte qu’elles correspondent à vos numéros d’objets :

  6. Déployez l’extension dans votre bac à sable.

Si vous utilisez les deux extensions, celles-ci proposent les éléments suivants :

  • Un cadre pour définir un ensemble de tests ou de scénarios à exécuter en parallèle. Le cadre enregistre également les résultats et permet d’importer et d’exporter des définitions de suites.

  • Des suites de tests prédéfinies couvrant des scénarios de base, qui peuvent également servir d’inspiration pour d’autres suites adaptées à vos environnements clients.

  • Un outil de ligne de commande qui doit être installé sur un ordinateur client. Afin de simuler la connexion et l’utilisation des pages par plusieurs utilisateurs simultanément, vous devez démarrer ces scénarios de l’extérieur de Business Central. L’outil de ligne de commande exécute le nombre de sessions client simultanées spécifié dans la suite.

Généralement, la suite est exécutée pour plusieurs sessions en même temps. Après avoir configuré la suite, vous pouvez l’exécuter en utilisant l’action Démarrer. Cependant, si vous souhaitez effectuer des tests légers, par exemple, au début de la phase de développement, vous pouvez choisir l’action en mode Démarrer en une seule exécution afin d’exécuter votre suite une seule fois, et le plus rapidement possible. Le mode d’exécution unique permet de surveiller le nombre d’instructions SQL entre les exécutions et de définir une base de référence. De plus, il offre un retour rapide qui peut aider à identifier les régressions dès le départ.

Vous pouvez exécuter jusqu’à 125 sessions en même temps pour une suite de tests. Le champ Nombre total de sessions indique le nombre de sessions qui seront créées à l’exécution de la suite.

Sur les lignes de suite, l’option Exécuter au premier plan permet d’exécuter des tests en séquence plutôt qu’en parallèle. Vous pouvez également l’utiliser en combinaison avec des tâches en arrière-plan, mais dans ce cas chaque session sera exécutée individuellement. Vous pouvez exécuter une seule session au premier plan à la fois.

Configuration d’une suite

Les paramètres permettant de configurer une suite dépendent de l’environnement que vous souhaitez simuler. La procédure suivante fournit un exemple destiné à tester plusieurs sessions, mais elle fonctionne également pour une seule exécution.

Pour configurer une suite, procédez de la manière suivante :

  1. Recherchez Suites BCPT, puis cliquez sur le lien correspondant.

  2. Cliquez sur Nouveau pour ouvrir la page Suite BCPT.

  3. Dans les champs Code, Description et Indicateur, renseignez un identificateur, des informations concernant le test et un indicateur servant à trouver les résultats de la suite sur la page Entrées de journal.

  4. Définissez le moment de l’exécution. Le champ 1 jour ouvrable correspond à fonctionne avec le champ Durée (minutes) pour mettre à jour le champ La date de travail commence à. Il permet de tester les processus assortis d’échéances, tels que les paiements. La durée peut s’étendre jusqu’à 240 minutes.

    Les champs Délai utilisateur min. par défaut et Délai utilisateur max. par défaut de l’en-tête permettent de simuler des pauses entre les actions. Vous devez spécifier un délai. Entre chaque itération, par exemple lors de la création de commandes ventes, vous pouvez définir un Délai (Délai entre les itérations) avant le début du test sur la prochaine commande vente. Celui-ci peut être Fixe ou Aléatoire. Les délais ne sont pas compris dans les résultats des temps d’exécution.

  5. Précisez la version de base à comparer. Pour modifier la valeur du champ Version de base, vous devrez peut-être activer le mode Édition.

  6. Configurez les lignes pour la suite. Les lignes comportent certains des paramètres de l’en-tête. La mise à jour des valeurs dans les lignes met également à jour l’en-tête.

    • Dans le raccourci Lignes de suite BCPT, choisissez les codeunits à exécuter.

    • Dans le champ Paramètres, saisissez un paramètre pour définir des itérations comme, par exemple, créer des lignes sur des documents. Par exemple, un paramètre Lines=10 crée 10 lignes sur un document.

    • Dans le champ Nombre de sessions, saisissez le nombre d’utilisateurs simultanés à simuler.

    • Facultatif : si vous souhaitez lancer une exécution unique ou si vous souhaitez exécuter l’une des sessions sans appliquer de paramètres tels que les délais minimal et maximal, cochez la case Exécuter au premier plan.

Démarrer l’exécution à partir de PowerShell

Après avoir installé les fichiers binaires et les scripts et configuré votre suite, vous pouvez créer l’objet d’informations d’identification et exécuter les tests à partir de PowerShell en utilisant les commandes suivantes.

Pour créer l’objet d’informations d’identification, exécutez la commande suivante :

$Credential = New-Object PSCredential -ArgumentList <user email>,(ConvertTo-SecureString -String <password> -AsPlainText -Force)

Pour démarrer des tests dans un bac à sable Business Central Online, exécutez la commande suivante :

RunBCPTTests.ps1 -Environment PROD -AuthorizationType AAD -Credential $Credential -SandboxName <sandbox name> -TestRunnerPage 149002 -SuiteCode "TRADE-50U"

Lorsque vous démarrez des tests à partir de PowerShell, un délai de deux secondes est à prévoir entre les nouvelles sessions. Lorsqu’une exécution est terminée, vous pouvez afficher les résultats sur les lignes du raccourci Lignes de suite BCPT.

Après avoir exécuté la suite, vous pouvez cliquer sur Entrées de journal pour voir ce qui s’est passé. Utilisez les actions Afficher les erreurs et Afficher les sessions s’exécutant en même temps, car elles appliquent des filtres aux résultats. Par exemple, le filtrage peut aider à résoudre les erreurs en montrant ce qu’un utilisateur faisait lorsqu’une erreur s’est produite. Par défaut, la page est filtrée de sorte à afficher la dernière version, mais vous pouvez modifier ou supprimer le filtre si vous souhaitez comparer les exécutions. Vous pouvez utiliser l’action Ouvrir dans Excel pour créer des tableaux de bord qui peuvent aider à visualiser les résultats des performances.

Les entrées de journal sont répertoriées dans leur ordre de création, ce qui signifie que les différents scénarios sont mélangés. Chaque exécution est identifiée par la valeur contenue dans les champs Numéro de version.

La colonne Opération présente les mesures individuelles, où le terme Scénario est utilisé pour exécuter le codeunit sans le temps d’attente de l’utilisateur. La colonne Nombre d’instructions SQL comporte les instructions SQL qui ont été émises par le scénario et les activités du système, telles que la récupération des métadonnées. Les décomptes excluent les entrées de journal en soi. Pour effectuer un zoom avant sur une seule session, filtrez selon le champ N° de session ou sélectionnez Ouvrir dans Excel pour créer un tableau croisé dynamique et un graphique croisé dynamique pour une analyse plus approfondie.

Exemple : évaluer les appels SQL et la synchronisation en mode d’exécution unique

Cet exemple montre comment utiliser le mode d’exécution unique pour les tests de régression des performances (PRT) entre les modifications apportées au code, afin d’évaluer les appels SQL et la synchronisation.

Souvent, lors du développement d’une nouvelle extension, vous commencez avec un code limité et il est préférable d’attendre de disposer d’un scénario complet de bout en bout pour effectuer un test de référence plus important avec des utilisateurs simultanés simulés.

Vous pouvez utiliser l’action Démarrer en mode d’exécution unique pour effectuer un test limité, par exemple, sur une nouvelle extension. Le Mode d’exécution unique fournit toujours des éléments tels qu’une base de référence et la possibilité d’exécuter le test en arrière-plan. De plus, il apporte un retour instantané.

Les données générées par les exécutions sont conservées dans la base de données. Si la base de données est conservée, vous pouvez définir les exécutions précédentes comme base de référence.

Les étapes suivantes proposent un exemple d’exécution d’un PRT en mode d’exécution unique.

  1. Sur la page Suites BCPT, cliquez sur Nouveau.

  2. Dans le champ Code, saisissez un nom pour la suite de tests. Dans cet exemple, nous allons utiliser PreTest.

  3. Dans le champ Indicateur, saisissez une indication qui facilitera l’identification de la suite plus tard, lorsque vous analyserez les résultats.

  4. Les champs de durée et de délais ne sont pas utilisés pour le mode d’exécution unique, nous laissons donc leurs valeurs par défaut.

  5. Dans le raccourci Lignes de suite BCPT, choisissez la suite de tests pour votre composant.

  6. Dans cet exemple, nous calculons le poids total des articles d’une commande vente, nous allons donc utiliser le Test de la page de commande vente avec un paramètre qui crée quatre lignes. Le paramètre doit ressembler à ceci : Lines=4.

  7. Décochez l’option Exécuter au premier plan. La suite de tests est alors exécutée dans un thread d’arrière-plan.

  8. Sélectionnez le mode Démarrer en une seule exécution.

  9. La fenêtre suivante doit s’ouvrir.

  10. Cliquez sur le bouton Actualiser pour actualiser la page.

  11. Une fois le test terminé, sélectionnez Entrées de journal.

  12. Pour définir votre base de référence une fois l’exécution terminée, dans le champ Version de base, saisissez 1.