CasperJS, paralleles Browsen mit dem Test-Framework

8

Frage: Ich würde gerne wissen, ob es möglich ist, parallel mit dem Test-Framework in einer Skriptdatei zu arbeiten , also mit dem Tester-Modul und dem casperjs-Test-Kommando.

Ich habe einige Leute gesehen, die zwei Casper-Instanzen erstellt haben: gleichzeitige CasperJS-Anfragen und Ссылка , aber wie im Dokument erwähnt, können wir in einem Testskript keine neue Casper-Instanz erstellen.

Also habe ich versucht, etwas ähnliches zu tun - einfaches Beispiel - mit einem Casper-Testskript (einfach kopieren und ausführen, es wird funktionieren):

%Vor%

Aber es ist nicht parallel, sie werden nacheinander ausgeführt. Zur Zeit mache ich paralleles Browsen, aber mit Knoten, also nicht in der Datei selbst, unter Verwendung des Kindprozesses. Also, wenn Sie meinen vorherigen Code in zwei Dateien teilen -proc1.js, proc2.js- (nur die beiden Szenarien- & gt; casper.test.begin {...}), und starten Sie den folgenden Code über Knoten, so etwas wird funktionieren - mit Linux muss ich die entsprechende Syntax für Windows- suchen:

%Vor%

Mein Problem ist, dass die Umleitungen und das Öffnen neuer URLs ziemlich lang sind. Daher möchte ich, dass einige von ihnen parallel ausgeführt werden. Ich könnte XXX-Dateien machen und sie parallel mit Knoten starten, aber ich möchte keine XXX-Dateien mit 5 Zeilen Code, also wenn jemand erfolgreich (wenn möglich) URLs parallel in der gleichen Testdatei ohne Knoten (so ohne mehrere Prozesse), bitte bring es mir bei!

Und ich würde gerne wissen, was ist der Unterschied zwischen Verkettung von Anweisungen oder Wiederverwendung der Casper-Objekt jedes Mal: ​​

so zwischen:

%Vor%

Und das:

%Vor%

Verketten meine Anweisungen, wird es die gesamte Kette blockieren, wenn einer meiner Schritte fehlschlägt (Versprechen abgelehnt), anstatt jeden Casper Schritte auszuführen?

Also wäre es besser, Anweisungen mit abhängigen Schritten zu verketten [wie thenClick (selector)] und das casper-Objekt mit unabhängigen Schritten zu verwenden (wie eine neue URL zu öffnen), nicht wahr?

Edit: Ich habe versucht und wenn ein Schritt fehlschlägt, angekettet oder nicht, wird es alle nächsten Schritte stoppen, so sehe ich den Unterschied nicht mit verketteten Schritten oder nicht ...

    
Fanch 19.03.2014, 17:32
quelle

2 Antworten

3

Nun, das Verketten oder Verwenden des Casper-Objekts ist jedes Mal nur eine Frage des Geschmacks, es macht dasselbe, und wir können nicht mehrere Casper-Instanzen in einem Testskript starten. Wenn Sie eine Schleife haben, die einige Links öffnet, müssen Sie darauf warten, dass jede Seite der Reihe nach geladen wird.

Um das parallele Browsing mit dem Testrahmenwerk zu starten, müssen Sie mehrere Prozesse ausführen, also macht die Verwendung von knoten den Trick.

Nach dem Graben habe ich endlich Dateien mit zu vielen Umleitungen geteilt, die nicht länger sind als mein Hauptszenario, das nicht geteilt werden kann. Ein Ordner mit 15 Dateien wird parallel in 2/4 min auf dem lokalen Rechner ausgeführt.

    
Fanch 22.05.2014, 08:10
quelle
1

Es gibt keine offizielle Unterstützung für paralleles Browsen jetzt in casperjs. Es gibt mehrere Arbeitsumgebungen, in denen ich verschiedene Umgebungen eingerichtet habe und ich bin gerade dabei, zu testen, welcher der beste ist.

Ich sehe, dass eine Person auf diese Weise mit mehreren Casper-Instanzen arbeitet.

%Vor%

Zur Zeit laufen mehrere Caspers im Knoten mit 'child_process' . Es ist sehr stark auf CPU und Speicher

    
Peter the Russian 03.07.2016 23:49
quelle