Wenn Sie Überwachungs- oder Auslastungstests für Webanwendungen mit Dateiupload-Funktionalität einrichten müssen, verwenden Sie EveryStep Scripting Tool, um das Skript aufzuzeichnen.

Die Datei-Upload-Aufnahme ist nur für Chrome und mobile Browser verfügbar.

Grenzwerte für das Hochladen von Dateien

Das EveryStep Scripting Tool unterstützt die Aufzeichnung eines Datei-Uploads auf eine externe URL. Sie können Uploads von insgesamt bis zu 100 MB innerhalb eines EveryStep-Skripts für Auslastungstests und bis zu 20 MB für Überwachungsskripte aufzeichnen.

Beispielsweise können Sie einen Upload von vier Dateien mit einer Größe von 25 MB oder eine Datei mit 100 MB für den Auslastungstest aufzeichnen. Oder Sie können das Hochladen von zwei Dateien mit einer Dateigröße von jeweils 10 MB oder einer 20 MB-Datei zur Web-Performance-Überwachung aufzeichnen.

Wie es funktioniert

Dotcom-Monitor verfügt nicht über lokal verfügbaren Speicher. Um den Upload-Prozess einer Datei zu emulieren, muss das System die Datei von einer öffentlichen URL in das Skript herunterladen, bevor der Uploadschritt ausgeführt wird. Daher müssen Sie zunächst eine Testdatei bereitstellen, die im Upload-Prozess von Dotcom-Monitor verwendet wird. Daher lädt Dotcom-Monitor die Datei von der bereitgestellten URL in den System-Cloud-Speicher herunter und verwendet sie bei jeder Ausführung des Skripts im Upload-Prozess. Es gibt zwei Ansätze, um eine Testdatei für Dotcom-Monitor bereitzustellen.

Herunterladen der Datei von der externen URL

Um eine Datei von einer externen URL zu verwenden, fügen Sie eine Testdatei mit einer Größe von bis zu 100 MB (bis zu 20 MB für Überwachungsskripte) in eine öffentlich zugängliche URL ein, z. B. Amazon S3-Bucket, Azure-Speicher oder CDN-Services wie AWS CloudFront CDN. Zeichnen Sie dann den Dateiuploadschritt im EveryStep Recorder auf. Während der Aufzeichnung des Schritts werden Sie aufgefordert, den Link zur Testdatei anzugeben. Das System lädt die Datei herunter und verwendet sie im Upload-Vorgang.

Für Lasttestskripte ist die Verwendung von AWS CloudFront CDN aus folgenden Gründen der Verwendung von Amazon S3-Buckets vorzuziehen:

  1. Skalierbarkeit: S3 weist inhärente Einschränkungen beim Lesebetrieb auf, die sich auf die Testergebnisse bei Tests mit hoher Auslastung auswirken können.
  2. Konsistenz: Dateien, die in einem S3-Bucket gespeichert sind, befinden sich in bestimmten geografischen Zonen, was je nach Standort der Lastinjektoren zu potenziellen Latenzproblemen führt. CDNs bieten verteilte Edge-Standorte, die eine konsistente Latenz und zuverlässigere Ergebnisse während des Tests bieten.

Aufzeichnen eines Dateidownloads innerhalb des Skripts

Alternativ können Sie den Dateidownload aufzeichnen und die heruntergeladene Datei auswählen, um einen Upload-Schritt im Skript aufzuzeichnen. Bei Bedarf können Sie den Dateinamen und den Link sowie das Timeout zum Herunterladen ändern, indem Sie die zugehörige Zeile im Bereich Skriptcode nach der Aufzeichnung bearbeiten.

Bewährte Methoden

Dotcom-Monitor führt standardmäßig alle Schritte und Aktionen im Skript ohne Verzögerungen aus. Das Hochladen einer Datei in eine Webressource dauert jedoch in der Regel einige Zeit. In diesem Fall wird empfohlen, die Delay-Zeile direkt nach dem Uploadschritt zum Skript hinzuzufügen, um die Verzögerung zu simulieren und zu warten, bis das System den Upload-Schritt ausführt.

Um sicherzustellen, dass der Upload korrekt ausgeführt wurde, richten Sie außerdem die Inhaltsüberprüfung nach dem Uploadschritt ein. Wenn Dialogfelder oder Upload-Bestätigungen nach dem Hochladen der Datei auf der Seite angezeigt werden, fügen Sie im Allgemeinen Keyword-Validierung oder verfügbare Codeausschnitte hinzu, um zu überprüfen, ob der Upload-Schritt die erwarteten Ergebnisse gebracht hat.

Aufzeichnen des Dateiuploads über die externe URL

Überprüfen Sie die Folgenden:

  1. Laden Sie eine Testdatei mit einer Größe von bis zu 100 MB auf eine öffentlich zugängliche URL herunter.
  2. Zeichnen Sie das Skript auf, bis Sie die Datei hochladen müssen.
  3. Klicken Sie auf die entsprechende Schaltfläche auf der Zielseite, um die Datei hochzuladen.
  4. Geben Sie im Fenster Dateien hochladen einen externen Link zu der Datei an, die Sie hochladen möchten. Die Datei wird über den bereitgestellten externen Link in den Dotcom-Monitor-Cloudspeicher heruntergeladen. Nach dem Herunterladen wird der Dateiname im Fenster Dateien hochladen aufgeführt. Aktivieren Sie das Kontrollkästchen Datei, und klicken Sie auf OK. Daher wird die OpenFileDialogHandler-Zeile automatisch zum Skript hinzugefügt.

    Wenn der Dateidownload im vorherigen Schritt des Skripts aufgezeichnet wurde, wählen Sie den Dateinamen sofort im Fenster Dateien hochladen aus.

  5. Fügen Sie die Verzögerung direkt nach dem Upload-Schritt hinzu.
  6. Fügen Sie das Schlüsselwort oder die Bildüberprüfung zum Skript hinzu.
  7. Fahren Sie ggf. mit der Aufzeichnung fort; und beenden Sie den Aufnahmevorgang, wenn Sie bereit sind.

Finden Sie das Beispiel des Datei-Upload-Skripts, das im EveryStep-Skripttool unten aufgezeichnet ist. Das Skript enthält Beispiele für das Hochladen einer lokal gespeicherten Datei und einer Datei von der externen URL. Für Upload-Testzwecke können Sie die folgenden Beispieldateien von öffentlich verfügbaren URLs verwenden:

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

Beachten Sie, dass die im folgenden Beispiel verwendeten Datei-Hosting-Plattformen nur zu Demonstrationszwecken bereitgestellt werden. Sie können alle Dateifreigabe- und Speicherplattformen verwenden, die den Download zulassen.

// 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");