Testfall-Ausführung orchestrieren

    Normalerweise werden Testfälle einer Suite in sequentieller Reihenfolge ausgeführt. Es wird also ein Test nach dem anderen abgearbeitet. Je nach Komplexität und Umfang Ihrer Test-Szenarien macht es allerdings Sinn, mehrere Tests parallel auszuführen. Dadurch wird die Ausführungszeit einer Suite massiv gekürzt; Server-Ressourcen allerdings stärker beansprucht. Wenn Sie Tests parallel verarbeiten möchten, koordinieren Sie dies bitte mit den Administratoren der zu testenden Systeme, um eine Überbelastung dieser Systeme zu vermeiden.

    Die Orchestrierung von Tests wird in BiG EVAL ab Version 2.2.0 mit Hilfe der Suite-Ablaufsteuerung umgesetzt. Hierzu stehen Ihnen die Möglichkeiten der .NET Parallel Klassen zur Verfügung, die Sie wie folgt anwenden.

    Maximum Degree of Parallelism (MDOP)

    Bei den folgend dargestellten Kommandos geben Sie mit Hilfe des mdop-Parameters die Anzahl maximal gleichzeitig ausgeführte Testfälle an. Beachten Sie bitte, dass dies lediglich eine Obergrenze darstellt, und der tatsächliche Parallelisierungsgrad vom Betriebssystem gesteuert wird. 

     

    Testfälle sequentiell ausführen

    Das Kommando ExecuteActiveTests() führt alle aktiven Testfälle der Testsuite in sequentieller Reihenfolge aus.

     

    ExecuteActiveTests();

     

    Testfälle parallel ausführen

    Das Kommando ExecuteActiveTestsAsync(mdop) führt die im Parameter mdop angegebene Anzahl Testfälle parallel aus.

    Der Beispiel-Code zeigt auf, wie vier Testfälle gleichzeitig ausgeführt werden. Auch wenn mehr als die im Beispiel angegebenen vier aktiven Testfälle in der Testsuite sind, so werden maximal vier gleichzeitig ausgeführt. Sobald einer davon beendet ist, so wird der nächste Testfall ausgeführt.

    Achtung: Vergessen Sie das Schlüsselwort await nicht, da es sich um eine asynchrone Ausführung handelt. Ansonsten erhalten Sie ein unerwünschtes Verhalten bei der Suite-Ausführung.

    await ExecuteActiveTestsAsync(4);

     

    Gemischte Ausführung (Concurrency-Groups)

    Gruppieren Sie Testfälle in sogenannten Concurrency-Groups und führen Sie diese Gruppen parallel aus. Die Ausführung der Testfälle einer Concurrency-Group können Sie wiederum parallelisieren, indem Sie die entsprechenden mdop -Parameter-Werte verwenden.

    Markieren Sie die zu gruppierenden Testfälle mit Tags. Im Beispiel verwenden wir die Tags GruppeA resp. GruppeB um die Testfälle in zwei Gruppen einzuteilen.

    Mit Hilfe des Kommandos ExecuteTestsByTagAsync(tag, mdop)führen Sie die aktiven Testfälle der Testsuite aus, die mit dem entsprechenden Tag gekennzeichnet sind.

    Durch das Zusammenfassen der Gruppen durch das KommandoTask.WaitAll(gruppe1, gruppe2, gruppeN) werden die Gruppen parallel ausgeführt.

    Sie können eine beliebige Anzahl Gruppen bilden. 

    Task.WaitAll(
      ExecuteTestsByTagAsync("Gruppe1", 1),
      ExecuteTestsByTagAsync("Gruppe2", 2)
    );

     

    War dieser Beitrag hilfreich?
    0 von 0 fanden dies hilfreich

    Kommentare