Zombie.js pressButton Lange Rückrufverzögerung

8

Ich habe versucht, das herauszufinden, indem ich eine Reihe von console.logs verwende und immer noch nicht herausfinden kann, warum diese Ladezeiten so lang sind.

Also habe ich den folgenden Code in meinem beforeEach in meiner Mocha Unit Test Datei.

%Vor%

Wenn Sie in diesem Fall auf die Schaltfläche klicken, werden einige Umleitungen angezeigt und schließlich eine Dashboard-Seite angezeigt. Am Ende dieser HTML-Datei habe ich den folgenden Code.

%Vor%

Nach dem Ausführen der Tests, wenn ich den Wert nach #100 minus den Wert nach #200 nehme, ist es immer etwa 5000-6000. Weil #200 immer vor 5 bis 6 Sekunden vor #100 gedruckt wird.

Ich verstehe nicht, warum es nach dem Laden der Seite noch 5-6 Sekunden dauert, bis Zombie.js diese Callback-Funktion aufruft.

Hat Zombie.js etwas Wartezeit oder Verzögerung, dass ich vermisse, nachdem ich die Seite geladen habe? Was könnte diese Verzögerung von 5-6 Sekunden zwischen dem Laden der Seite und dem Aufruf von Zombie.js durch diese Callback-Funktion verursachen?

BEARBEITEN Ich habe jetzt das gleiche Problem, aber mit 50000ms. Und das summiert sich super schnell über alle meine Tests. Ich kann immer noch nicht herausfinden, warum das passiert.

BEARBEITEN 2

Wenn ich browser.debug() zu meinem Test hinzufüge, druckt es am Ende ganz unten. Es druckt auch viele andere Sachen, aber das passiert insgesamt ziemlich schnell. Ich denke, das Folgende könnte das Problem sein. Nur nicht sicher, warum es das macht oder wie man es repariert.

%Vor%

Was verursacht alle zombie Fired setInterval every 5000ms und wie behebe ich es, damit es nicht 55000ms + dauert?

EDIT 3

Ich habe auch den folgenden Code am Anfang des Komponententests hinzugefügt.

%Vor%

Nach dem Drucken jedes zombie Fired setInterval every 5000ms +5s gibt es aufgrund dieses Listeners auch Folgendes aus:

%Vor%

a und b sind nach jedem dieser 11 zombie Fired setInterval every 5000ms identisch. Es ändert sich überhaupt nicht zwischen diesen 11 Zeiten.

Ich dachte, dass Funktion irgendwie helfen würde, aber ich verstehe immer noch nicht, warum das passiert oder wie man es überhaupt reparieren kann.

    
Charlie Fish 10.08.2016, 22:05
quelle

1 Antwort

1

Zombie lädt alle Ressourcen und verarbeitet alle Ereignisse, bevor der Rückruf ausgelöst wird. Anstatt pressButton zu verwenden, senden Sie das Formular direkt und verwenden Sie wait mit einem Terminator-Callback, der nach jedem Ereignis aufgerufen wird. Dies sollte Ihnen zeigen, was die Verzögerung verursacht:

%Vor%

Aus den API-Dokumenten:

  

browser.wait (Rückruf)

     

browser.wait (Terminator, Rückruf)

     

Verarbeitet alle Ereignisse in der Warteschlange und ruft den Rückruf auf, wenn er fertig ist.

     

Sie können das zweite Formular verwenden, um die Kontrolle zu übergeben, bevor Sie alle verarbeiten   Veranstaltungen. Der Terminator kann eine Zahl sein, in diesem Fall also viele Ereignisse   verarbeitet werden. Es kann eine Funktion sein, die nach jedem Ereignis aufgerufen wird.   Die Verarbeitung stoppt, wenn die Funktion den Wert false zurückgibt.

    
mr.freeze 26.10.2016 14:00
quelle