2016-04-20 9 views
0

Wir führen Leistungstests mit nGrinder durch. Wir haben Anwendungsfälle, in denen wir mehrere Testskripts parallel ausführen möchten.Testskripte parallel in nGrinder ausführen

Auf ihrer Website wird angegeben, dass ein Benutzer nur einen Test gleichzeitig ausführen kann. Also haben wir zwei Benutzer eingerichtet, aber ich sehe das gleiche Verhalten: nur ein Testskript läuft und die anderen warten in einem READY-Zustand.

Gibt es in nGrinder eine Möglichkeit, mehrere Testskripts parallel auszuführen?

Antwort

0

Es ist nur möglich, mehrere Tests gleichzeitig auszuführen, wenn diese Tests von den verschiedenen Benutzern ausgeführt werden, wenn die freien Agenten genügend verfügbar sind, um beide Tests auszuführen.

Ich vermute, Sie haben nicht genug Agenten, um beide zu laufen.

+0

Danke für die Anregung, aber ich weiß genug Mittel haben. 5 Agenten und ich habe nur zwei Tests mit einem Agenten. Ich sah in der Datei system.conf, dass der _controller.max_concurrent_test = 10_ auskommentiert, so dass ich das auskommentiert und den Controller neu gestartet, aber es funktioniert immer noch nicht – dragosb

+0

Sollte ich auch den Agenten neu starten? Ich nehme an, system.conf wird nur vom Controller und nicht von den Agenten verwendet – dragosb

+0

Gibt es ein anderes mögliches Problem, das ich suchen sollte? – dragosb

0

Sie können viele Skripts nur mit einem Agenten ausführen. Ich würde Agenten basierend auf Transaktionsgruppen und nicht auf Skripts aufteilen.

In der Mühle gibt es parallel.py. Ich habe dies nur vor, um Skripte parallel laufen zu lassen.

Link Siehe https://github.com/DealerDotCom/grinder/blob/master/grinder/examples/parallel.py

from net.grinder.script.Grinder import grinder 

Skripte = [ "TestScript1", "TestScript2", "TestScript3"]

Sicherstellen, dass Module im Prozess Thread initialisiert werden.

für Skript in Skripten: exec ("Import% s" % script)

def createTestRunner (Skript): exec ("x =% s.TestRunner()" % script) return x

Klasse Testrunner: def init (self): tid = grinder.threadNumber

if tid % 4 == 2: 
     self.testRunner = createTestRunner(scripts[1]) 
    elif tid % 4 == 3: 
     self.testRunner = createTestRunner(scripts[2]) 
    else: 
     self.testRunner = createTestRunner(scripts[0]) 

# This method is called for every run. 
def __call__(self): 
    self.testRunner() 
Verwandte Themen