Ein Beispiel
Angenommen, wir wollen einen Online-Video-Streaming-Dienst testen. In diesem Fall möchten wir die gleichzeitige Nutzung von Videos durch viele Benutzer sowie DoS testen - beide Szenarien sind mit unserem Framework testbar.
Wir müssen mehrere Schritte unternehmen, um uns auf diese Anwendungsfälle vorzubereiten. Zuerst definieren wir die Anzahl der Nutzer, die wir simulieren möchten, und teilen diese Nutzer in logische Gruppen ein. Video-Streaming-Dienste bieten in der Regel viele Videos an, daher macht es Sinn, die Nutzer nach den Videos zu sortieren, die sie ansehen werden. Auf diese Weise können wir testen, ob viele Nutzer ein bestimmtes Video ansehen, während andere Nutzer etwas anderes ansehen. Wir nennen diese Gruppen „Räume“.
Nachdem wir unsere Gruppen definiert haben, müssen wir das Testskript schreiben. Keine Sorge, es ist einfach! Das Framework unterstützt das Selenium-Scripting mit der NightWatch JS-Syntax. Alles, was Sie tun müssen, ist Aktionen zu komponieren, die die simulierten Benutzer ausführen sollen, sowie einige Assertions während des Tests.
function(client) { var roomName = 'loadero_demo'; client .url('https://appr.tc/r/'+roomName+client.globals.room) .waitForElementVisible('body', 10*1000) .click('#confirm-join-button') .pause(30*1000) .assert.cssClassPresent("#remote-video", "active") .pause(30*1000); }
Dieser Beispielcode beschreibt ein Testskript zum Starten eines Videoanrufs zwischen zwei Teilnehmern auf Google's Appr.tc.
Sie können entscheiden, in welchem Tempo die Benutzer beitreten. Für gängige Anwendungsfälle würden die Benutzer zu einem bestimmten Zeitpunkt schnell beitreten und das Tempo kurz vor dem Ereignis verlangsamen. Dieser Graph veranschaulicht die potenzielle Gesamtzahl der Benutzer im Laufe der Zeit.
Um ein realistisches Szenario zu simulieren, wollen wir nicht, dass alle Benutzer gleichzeitig den Dienst nutzen. Daher müssen wir eine Anlaufzeit konfigurieren. Die Anlaufzeit definieren wir mit zwei Parametern: der Gesamtzeit, die alle Benutzer benötigen, um sich anzuschließen, und der Anschlussfunktion. In manchen Anwendungsfällen möchten Sie, dass Benutzer in einem konstanten Tempo beitreten, während in anderen Anwendungsfällen ein plötzlicher Anstieg nach einigen ruhigen Minuten erwünscht sein kann.