Test de script de navigateur
Le test de navigateur simule les chemins que les utilisateurs peuvent emprunter via des applications Web en lisant des scripts de test Node.js via des navigateurs pour surveiller et mesurer les performances des sites Web des utilisateurs.
Les tests de navigateur Instana sont pris en charge pour le graphique Helm Synthetic PoP 1.0.15 ou ultérieur. Un nouveau moteur de simulation est utilisé pour exécuter ces tests. Vous devez mettre à jour votre version de Synthetic PoP vers 1.0.15 ou une version ultérieure pour activer le moteur de lecture dans le navigateur. Instana Les tests de navigateur prennent en charge les tests « Browser Simple » et « Browser Script ».
Instana Les tests de navigateurs synthétiques prennent en charge les API basées sur l' Selenium et élargissent les fonctionnalités de test de navigateurs grâce à plus de 30 API dédiées.
De plus, Instana Synthetic propose un ensemble de variables globales et d'API visant à rendre les tests sur navigateur plus faciles, plus faciles à maintenir et plus sûrs.
En utilisant cette fonction, les développeurs de scripts peuvent se concentrer principalement sur leur logique de test, au lieu d'installer des navigateurs et des pilotes, d'ouvrir et de fermer des navigateurs et de libérer des ressources.
Prérequis
Les tests de navigateur Instana sont pris en charge pour le graphique Helm Synthetic PoP 1.0.15 ou ultérieur.
Un nouveau moteur de simulation est utilisé pour exécuter ces tests. Vous devez mettre à niveau votre PoP synthétique vers la version 1.0.15 ou une version ultérieure pour activer le moteur de lecture du navigateur.
Pour vérifier la version de la charte PoP Helm synthétique, exécutez la commande suivante:
helm list -n <namespace>
Pour vérifier si le nouveau moteur de lecture pour le test du navigateur est activé, exécutez la commande suivante:
kubectl get pod -n <namespace> | grep browserscript
synthetic-pop-browserscript-playback-engine-8589bb6cbf-dh7sb 1/1 Running 0 13m
Environnements d'exécution pris en charge et fonctionnalités
Instana Les tests de navigateur synthétiques prennent en charge les environnements d'exécution Chromium, Mozilla, Firefox et Node.js.
- Mozilla Firefox 115.4.0esr
- Deux versions de Chromium sont prises en charge :
- 113.0.5672.0 lorsque
isNewEngineestfalse. - 138.0.7204.183 lorsque
isNewEngineesttrue.
- 113.0.5672.0 lorsque
- Node.js v22 avec le système de modules de l' CommonJS. L'ESM n'est pas pris en charge.
- 4.29.0 de Selenium WebDriver
Instana Les tests de navigateurs synthétiques prennent en charge les API basées sur l' Selenium, ainsi que plus de 30 API de test de navigateurs.
Instana Les tests de navigateur synthétiques permettent d'analyser et de collecter des indicateurs tels que le temps de réponse et la taille de la réponse.
Instana Les tests de navigateur synthétiques prennent en charge les enregistrements, les captures d'écran, les journaux du navigateur, les journaux de console et le format d'archive HAR ( HTTP ) dans les résultats des tests.
Types de tests de scripts de navigateur
Avec « Instana Synthetic», vous pouvez créer les tests de script de navigateur suivants :
Scripts de navigateur
Les scripts de navigateur sont basés sur Node.js et incluent à la fois des scripts uniques et des scripts intégrés .
Scripts de navigateur : script de test pour un seul navigateur
Vous pouvez tout écrire dans un seul script. Généralement, cette méthode peut répondre aux besoins de la plupart des utilisateurs. Voir l'exemple suivant :
(async function () {
console.log("Access IBM website");
await $browser.get("https://www.ibm.com/us-en");
console.log("Accept all cookies");
const cookies = await $browser.waitForAndFindElement(
$driver.By.id(`truste-consent-button`),
30000
);
await cookies.click();
})();
Scripts de navigateur : ensemble de scripts de test pour navigateurs
Si la logique métier est complexe, ne pas tout contenir dans un seul script. Utilisez plusieurs fichiers script pour une meilleure maintenance, une meilleure réutilisation du code et un meilleur contrôle des versions dans GitHub.
Vous pouvez utiliser des scripts intégrés dans un fichier compressé.
Ecrivez plusieurs scripts avec des bibliothèques partagées. Voir l'exemple suivant :
// bundled/mytest.js const assert = require("assert").strict; let { testIBM } = require("./lib/myscript.js"); console.log("Start to test"); testIBM();// bundled/lib/myscript.js async function testIBM() { console.log("Access IBM website"); await $browser.get("https://www.ibm.com/us-en"); console.log("Accept all cookies"); const cookies = await $browser.waitForAndFindElement($driver.By.id(`truste-consent-button`), 30000); await cookies.click(); }; module.exports = { testIBM };Empaquetez plusieurs scripts dans un fichier
.zip. Voir l'exemple suivant :Compressez les scripts dans le fichier
.zipavec le dossier supérieurbundledet le fichier principalbundled/mytest.js.zip -r bundledtest.zip bundledVous pouvez également regrouper tous les scripts dans le fichier
.zipavec le fichier principalmytest.js.zip -r bundledtest.zip *
Selenium Scripts IDE
Selenium Les scripts IDE sont des scripts enregistrés dans l'environnement de développement intégré ( Selenium ).
Scénarios de théâtre
Les scripts Playwright sont pris en charge pour les tests Synthetic exécutés dans un navigateur. Vous pouvez utiliser Playwright pour définir des interactions automatisées avec des applications web, telles que la navigation, les actions de l'utilisateur et les validations.
Les scripts Playwright s'exécutent dans un navigateur afin de simuler les flux de travail des utilisateurs et de vérifier le comportement des applications.
Les scripts Playwright offrent des fonctionnalités avancées d'automatisation des navigateurs modernes, ainsi qu'une optimisation de la mémoire. Le dramaturge propose :
- Automatisation du navigateur via une « API » basée sur les « promises »
- Attente automatique des éléments de page et des actions avant l'exécution
- Mécanismes de nouvelle tentative pour les opérations prises en charge
- Modes d'enregistrement configurables de l'archive HAR ( HTTP )
- Limites de journalisation du navigateur configurables
- Signalement des erreurs et informations de débogage
Vous pouvez utiliser le format de test de script Playwright.
Le format de test est un script structuré utilisant le framework de test Playwright, qui est automatiquement converti en vue de son exécution. Voir l'exemple suivant :
const { test, expect } = require('@playwright/test');
test('IBM website test', async ({ page }) => {
await page.goto('https://www.ibm.com/us-en');
await page.click('#truste-consent-button');
await expect(page).toHaveTitle(/IBM/);
});
Utilisation des scripts Playwright
Pour utiliser les scripts Playwright dans la surveillance synthétique, procédez comme suit :
- Dans l'interface utilisateur d' Instana, accédez à la section « Surveillance synthétique », puis créez un nouveau test synthétique.
- Sélectionnez « Script de navigateur » comme type de test.
- Saisissez ou collez le script Playwright.
- Configurez les paramètres de test, tels que l'emplacement et la fréquence d'exécution.
- Enregistrez et lancez le test.
- Les scripts doivent respecter la syntaxe prise en charge par Playwright.
- Les scripts au format de test sont convertis au format d'exécution lors de l'exécution.
- Utilisez des sélecteurs stables et uniques pour garantir une exécution cohérente.
Exemples de scripts pour navigateur
Instana Synthetic propose de nombreux exemples qui vous aideront à vous lancer rapidement ou à créer vos propres tests de navigateur en un clin d'œil.
Pour commencer, consultez les exemples suivants:
Test et débogage de scripts dans le navigateur
Instana Synthetic propose une application en ligne de commande, synthetic-browser-script Node.js, destinée à aider les utilisateurs à développer, tester ou déboguer leurs scripts de test de navigateur en local.
L'application « synthetic-browser-script » est désormais disponible sur GitHub et sur le site npmjs.
Il s'agit d'un exécuteur local pour Instana Synthetic, conçu pour vous aider dans vos tests de navigateur avec Synthetic.
Il comprend de nombreux exemples, ce qui vous aide à rédiger rapidement vos propres tests de navigateur. D'autres exemples seront ajoutés.
Vous pouvez utiliser l'exécuteur local synthetic-browser-script dans les cas suivants:
Vous avez besoin d'un module d'exécution local pour tester et déboguer vos scripts de navigateur avec l'interface de ligne de commande.
Vous avez besoin d'un package « npm » qui fournit toutes les API de test de navigateur synthétique d' Instana.
Vous avez besoin de la "saisie semi-automatique du code" ou de la "saisie semi-automatique du code" dans VS Code pour toutes les API de test du navigateur.
Vous avez besoin d'un navigateur complet ouvert pour effectuer vos actions de test et prouver la qualité de vos scripts.
Vous devez reproduire vos échecs de test localement pour vous aider à en déboguer la cause première.
Vous devez apprendre à partir d'exemples d'API de test de navigateur, puis écrire vos propres tests de navigateur sur la base de ces exemples.