Si vous devez configurer la surveillance ou le test de charge pour les applications Web avec une fonctionnalité de téléchargement de fichiers, utilisez EveryStep Scripting Tool pour enregistrer le script.

L’enregistrement de téléchargement de fichiers est disponible uniquement pour Chrome et les navigateurs mobiles.

Limites de téléchargement de fichiers

L’outil de script EveryStep prend en charge l’enregistrement d’un téléchargement de fichier vers une URL externe. Vous pouvez enregistrer le téléchargement d’un maximum de 100 Mo au total dans un script EveryStep pour les tests de charge et jusqu’à 20 Mo pour les scripts de surveillance.

Par exemple, vous pouvez enregistrer un téléchargement de quatre fichiers de 25 Mo ou d’un fichier de 100 Mo pour votre test de charge. Vous pouvez également enregistrer le téléchargement de deux fichiers d’une taille de fichier de 10 Mo chacun ou d’un fichier de 20 Mo pour la surveillance des performances Web.

Comment cela fonctionne

Dotcom-Monitor n’a pas de stockage disponible localement. Pour émuler le processus de téléchargement d’un fichier, le système doit télécharger le fichier sur le script à partir d’une URL publique avant d’exécuter l’étape de téléchargement. Ainsi, tout d’abord, vous devez fournir un fichier de test qui sera utilisé dans le processus de téléchargement par Dotcom-Monitor. Par conséquent, Dotcom-Monitor téléchargera le fichier à partir de l’URL fournie vers le stockage cloud du système et l’utilisera dans le processus de téléchargement chaque fois que le script est exécuté. Il existe deux approches pour fournir un fichier de test à Dotcom-Monitor.

Téléchargement du fichier à partir de l’URL externe

Pour utiliser un fichier à partir d’une URL externe, placez un fichier de test d’une taille maximale de 100 Mo (jusqu’à 20 Mo pour les scripts de surveillance) vers une URL accessible publiquement, telle qu’un compartiment Amazon S3, un stockage Azure ou des services CDN tels qu’AWS CloudFront CDN. Ensuite, enregistrez l’étape de téléchargement de fichiers dans l’enregistreur EveryStep. Lors de l’enregistrement de l’étape, vous serez invité à fournir le lien vers le fichier de test. Le système téléchargera le fichier et l’utilisera dans l’opération de téléchargement.

Pour les scripts de test de charge, l’utilisation d’AWS CloudFront CDN est préférable à l’utilisation du compartiment Amazon S3 pour les raisons suivantes :

  1. Évolutivité : S3 présente des limitations inhérentes aux opérations de lecture qui peuvent affecter les résultats des tests lors de tests à forte charge.
  2. Cohérence : les fichiers stockés dans un compartiment S3 se trouvent dans des zones géographiques spécifiques, ce qui entraîne des problèmes de latence potentiels en fonction de l’emplacement des injecteurs de charge. Les CDN fournissent des emplacements de périphérie distribués, offrant une latence constante et des résultats plus fiables pendant les tests.

Enregistrement d’un téléchargement de fichiers dans le script

Vous pouvez également enregistrer le téléchargement du fichier et sélectionner le fichier téléchargé pour enregistrer une étape de téléchargement dans le script. Si nécessaire, vous pouvez modifier le nom et le lien du fichier, ainsi que le téléchargement du délai d’attente, en modifiant la ligne connexe dans la zone Script Code après l’enregistrement.

Meilleures pratiques

Dotcom-Monitor exécute toutes les étapes et actions du script sans retards par défaut. Toutefois, il faut généralement un certain temps pour télécharger un fichier sur une ressource Web. Dans ce cas, pour simuler le retard et attendre que le système exécute l’étape de téléchargement, il est recommandé d’ajouter la ligne Delay au script juste après l’étape de téléchargement.

En outre, pour s’assurer que le téléchargement a été exécuté correctement, configurer la validation du contenu après l’étape de téléchargement. En général, si des boîtes de dialogue ou des confirmations de téléchargement apparaissent sur la page après le téléchargement du fichier, ajoutez la validation de mots clés ou les extraits de code disponibles pour vérifier si l’étape de téléchargement a apporté les résultats escomptés.

Enregistrement du téléchargement de fichiers à partir de l’URL externe

Vérifiez les étapes de configuration de téléchargement de fichiers ci-dessous:

  1. Téléchargez un fichier de test jusqu’à 100 Mo vers une URL accessible publiquement.
  2. Enregistrez le script jusqu’au point où vous devez télécharger le fichier.
  3. Cliquez sur le bouton correspondant sur la page cible pour télécharger le fichier.
  4. Dans la fenêtre Télécharger des fichiers, fournissez un lien externe vers le fichier que vous souhaitez télécharger. Le fichier sera téléchargé à partir du lien externe fourni vers le stockage cloud Dotcom-Monitor. Une fois téléchargé, le nom du fichier sera répertorié dans la fenêtre Télécharger des fichiers. Sélectionnez la case à cocher du fichier et cliquez sur OK. Par conséquent, la ligne OpenFileDialogHandler sera automatiquement ajoutée au script.

    Si le téléchargement du fichier a été enregistré à l’étape précédente du script, sélectionnez immédiatement le nom du fichier dans la fenêtre Télécharger des fichiers .

  5. Ajoutez le delay juste après l’étape de téléchargement.
  6. Ajoutez le mot clé ou la validation d’image au script.
  7. Si nécessaire, procéder à l’enregistrement; et arrêter le processus d’enregistrement lorsqu’il est prêt.

Trouvez l’exemple du script de téléchargement de fichiers enregistré dans l’outil de script EveryStep ci-dessous. Le script contient des exemples de téléchargement d’un fichier stocké localement et d’un fichier à partir de l’URL externe. À des fins de test de téléchargement, vous pouvez utiliser les exemples de fichiers suivants à partir d’URL accessibles au public :

  • https://d149yd38g6ldk.cloudfront.net/LoremIpsum.docx
  • https://d149yd38g6ldk.cloudfront.net/LoremIpsum.pdf
  • https://d149yd38g6ldk.cloudfront.net/LoremIpsum.txt

Notez que les plates-formes d’hébergement de fichiers utilisées dans l’exemple ci-dessous sont fournies à des fins de démonstration uniquement. Vous pouvez utiliser toutes les plateformes de partage et de stockage de fichiers qui permettent le téléchargement.

// script_version=3.0; everystep_version=4.0.7706.9249; date=2/10/2021; Chrome=83.0.4103.61
Tabs.SetSize (1768, 419);
DMBrowser tab0 = null;
Step (1, "Download & Generate Test Files - https://fastest.fish/test-files");
tab0 = Tabs.NewTab ();
tab0.GoTo ("https://fastest.fish/test-files");
tab0.Link ("//A[normalize-space()=\"5MB\"]", "//A[normalize-space(text())=\"5MB\"]", "//A[normalize-space()=\"10MB\"]/preceding-sibling::A[1]").Click ();
//File Download to the system storage  
Step (2, "Download & Generate Test Files - http://ipv4.download.thinkbroadband.com/5MB.zip");
tab0.Downloading ("5MB.zip", "http://ipv4.download.thinkbroadband.com/5MB.zip");
tab0.Para ("//P[normalize-space()=\"These test files will be downloaded in full over your network connection from high speed servers. These files can be used to test your network download speed.\"]/preceding-sibling::P[1]", "//P[normalize-space(text())=\"These test files will be downloaded in full over your network connection from high speed servers. These files can be used to test your network download speed.\"]/preceding-sibling::P[1]", "/HTML/BODY/DIV/DIV/P[1]").Click ();
//File Upload using the file from the system storage
Step (3, "Gofile - https://gofile.io/uploadFiles");
tab0.GoTo ("https://gofile.io/uploadFiles");
OpenFileDialogHandler (OpenFileDialogButton.Ok, new string[1] {"5MB.zip"});
tab0.Button ("//BUTTON[normalize-space()=\"Click here\"]", "//BUTTON[normalize-space(text())=\"Click here\"]", "//BUTTON[@ID=\"dropZoneBtnSelect\"]").Click ();
tab0.Button ("//BUTTON[normalize-space()=\"Upload\"]", "//BUTTON[normalize-space(text())=\"Upload\"]", "//BUTTON[@ID=\"uploadFiles-btnUpload\"]").Click ();
Delay ("40sec".ToDuration ());
tab0.KeywordAssert ("successfully uploaded");
//File Upload from the external URL
tab0.Link ("//P[normalize-space()=\"Upload Files\"]/..", "//LI[@ID=\"li-uploadFiles\"]//A", "//LI[@ID=\"li-api\"]/preceding-sibling::LI[1]//A").Click ();
tab0.Download ("Q3UTw.htm", "https://dropmefiles.com/Q3UTw");
OpenFileDialogHandler (OpenFileDialogButton.Ok, new string[1] {"Q3UTR.htm"});
tab0.Button ("//BUTTON[normalize-space()=\"Click here\"]", "//BUTTON[normalize-space(text())=\"Click here\"]", "//BUTTON[@ID=\"dropZoneBtnSelect\"]").Click ();
tab0.Button ("//BUTTON[normalize-space()=\"Upload\"]", "//BUTTON[normalize-space(text())=\"Upload\"]", "//BUTTON[@ID=\"uploadFiles-btnUpload\"]").Click ();
Delay ("40sec".ToDuration ());
tab0.KeywordAssert ("successfully uploaded");