Hauptinhalt

Erstellen eines Testrahmens

Ein Testrahmen ist ein Modell, das die zu testende Komponente isoliert und über Eingaben, Ausgaben und Verifikationsblöcke für Testszenarien verfügt. Sie können einen Testrahmen für eine Modellkomponente oder für ein vollständiges Modell erstellen. Ein Testrahmen bietet Ihnen eine separate Testumgebung für ein Modell oder eine Modellkomponente. Beispiel:

  • Sie können ein Subsystem einem Unit-Test unterziehen, indem Sie es vom Rest des Modells isolieren.

  • Sie können ein geschlossenes Testszenario für einen Controller erstellen, indem Sie dem Testrahmen ein Anlagenmodell hinzufügen.

  • Sie können Ihr Hauptmodell von unnötigen Verifikationsblöcken freihalten, indem Sie die Blöcke „Model Verification“ und Test Assessment im Testrahmen platzieren.

Um einem Testfall einen Testrahmen zuzuweisen, wählen Sie im Test Manager im Abschnitt System Under Test die Option Test Harness.

Sie können den Rahmen mit Ihrem Modell speichern oder in einer externen Datei ablegen. Wenn Ihr Modell einer Änderungsverwaltung unterliegt, sollten Sie den Testrahmen in einer externen Datei speichern. Der Rahmen funktioniert unabhängig davon, ob er sich innerhalb oder außerhalb des Modells befindet. Weitere Informationen finden Sie unter Manage Test Harnesses und Synchronize Changes Between Test Harness and Model.

Erstellen eines Rahmens

In diesem Beispiel erstellen Sie einen Rahmen direkt aus einem Modell. Der Testrahmen testet das Subsystem shift_logic des Modells sltestCarRootInport.

  1. Öffnen Sie das Modell sltestCarRootInport.

    openExample("sltestCarRootInport.slx")
  2. Rechtsklicken Sie auf das Subsystem shift_logic. Wählen Sie im Kontextmenü Test Harness > Create for 'shift_logic'.

  3. Geben Sie im Dialogfeld „Create Test Harness“ die Eingaben, Ausgaben und andere Optionen an:

    1. Verwenden Sie Constant-Blöcke, um Eingabesignale bereitzustellen. Setzen Sie unter Sources and Sinks die Quelle auf Constant und den Senke auf Scope.

    2. Belassen Sie die anderen Optionen in ihrer Standardeinstellung. Standardmäßig:

      • Der Rahmen wird mit der Modelldatei gespeichert.

      • Der Rahmen synchronisiert sich beim Öffnen mit dem Modell, d. h., Änderungen am Modell werden im Rahmen aktualisiert.

  4. Klicken Sie auf OK, um den Testrahmen zu erstellen.

Test harness showing the throttle and speed inputs connected to a routing subsystem. The subsystem connects to the shift logic block, and the block connects to another routing subsystem, which then connects to the scope.

Im Zentrum des Rahmens befindet sich eine Kopie des Subsystems shift_logic. Das Subsystem shift_logic ist die zu testende Komponente. Die beiden vertikalen Subsysteme umfassen die Signalspezifikation und das Routing.

Die in der zu testenden Komponente verwendeten Signalnamen werden vom Modell an den Testrahmen weitergeleitet. Bei Subsystem-Rahmen sind einige weitergeleitete Signalnamen möglicherweise erst nach der Kompilierung des Rahmens sichtbar. Bei Blockdiagramm-Rahmen werden Signalnamen auch dann weitergegeben, wenn Sie im Dialogfeld „Signal Properties“ die Option Show propagated signals nicht auswählen.

Sie können auch einen Rahmen oder mehrere Rahmen gleichzeitig erstellen, indem Sie die Funktion sltest.harness.create, die Funktion sltest.testmanager.createTestForComponent oder den Assistenten „Create Test for Model Component“ verwenden, der im Test Manager verfügbar ist. Informationen zum Assistenten finden Sie unter Generate Tests and Test Harnesses for a Model or Components.

Informationen zur Architektur des Testrahmens finden Sie unter Test Harness Construction for Specific Model Elements. Informationen zum Anpassen der Standard-Rahmen-Einstellungen beim Erstellen eines neuen Rahmens finden Sie unter Customize Test Harness Creation Default Property Values.

Simulieren des Testrahmens

Weisen Sie den Constant-Blöcken Werte zu, um die Komponente zu testen:

  1. Ändern Sie den Wert des Geschwindigkeitsblocks auf 50.

  2. Ändern Sie den Wert des Drosselblocks auf 30.

  3. Klicken Sie auf der Registerkarte „Simulation“ auf „Run“, um den Rahmen zu simulieren.

  4. Öffnen Sie den Bereich und betrachten Sie das Ergebnis. Das Schaltsteuergerät wählt den dritten Gang.

    Output showing very short amounts of time in first and second gear and a significant amount of time in third gear.

Test mit dem Test Manager

Im vorherigen Fall haben Sie Testdaten mit Constant-Blöcken bereitgestellt. Sie können auch Testdaten aus externen Dateien verwenden.

  1. Erstellen Sie einen Testrahmen, der Inport-Quellen verwendet.

  2. Erstellen Sie einen Testfall, der den Testrahmen als System Under Test verwendet.

  3. Ordnen Sie dem Testfall externe Eingaben zu.

Mit einem Testfall im Test Manager können Sie verschiedene Testvektoren iterieren, Testfälle hinzufügen, Batches von Testfällen ausführen und Ihre Ergebnisse organisieren. Dieses Beispiel zeigt Ihnen, wie Sie externe Daten mit einem Testrahmen verwenden und aus dem Test Manager heraus simulieren können.

  1. Um den Test Manager zu öffnen, klicken Sie auf der Registerkarte Apps unter „Model Verification, Validation, and Test“ auf Simulink Test. Klicken Sie anschließend auf der Registerkarte Tests auf Simulink Test Manager.

  2. Wählen Sie New > Test File aus der Symbolleiste des Test Managers.

  3. Benennen Sie die Datei ShiftLogicTest.

  4. Wählen Sie New Test Case 1 (Benutzerdefinierte Funktion) aus. Klicken Sie im Abschnitt System Under Test auf Use current model .

  5. Wählen Sie für Test Harness aus der Dropdown-Liste ShiftLogic_InportHarness aus. Der Testrahmen ist bereits im Modell vorhanden.

  6. Klicken Sie im Abschnitt Inputs auf Create. Benennen Sie die Eingabedatei mit shift_logic_input und wählen Sie das Dateiformat MAT.

  7. Geben Sie im Signal Editor die Werte für die Eingaben ein:

    1. Wählen Sie das Signal speed aus und geben Sie 50 für die Zeiten 0 und 30 ein. Drücken Sie die Eingabetaste, um das Diagramm zu aktualisieren.

    2. Wählen Sie das Signal throttle aus und geben Sie 30 für die Zeiten 0 und 30 ein. Drücken Sie die Eingabetaste, um das Diagramm zu aktualisieren.

      Speed plot showing constant value of 50 and throttle plot showing constant value of 30.

    3. Klicken Sie in der Symbolleiste des Signal Editors auf Save.

  8. Wählen Sie die zu erfassenden Ausgabedaten aus.

    1. Klicken Sie im Abschnitt Simulation Outputs des Test Manager auf Add.

    2. Wählen Sie im Blockdiagramm des Testrahmens die Signallinie gear aus. Wählen Sie das Signal im Dialogfeld Connect aus.

    3. Klicken Sie auf Done, um das Signal zu den Testfallausgaben hinzuzufügen.

  9. Klicken Sie in der Symbolleiste des Test Managers auf Run.

  10. Erweitern Sie die Ergebnisse und markieren Sie die Getriebeausgabe. Das Diagramm zeigt, dass das Steuergerät den dritten Gang wählt.

    Plot of the gear output from the controller

Siehe auch

Themen