Show TOC

Messungen sichern und neu ladenLocate this document in the navigation structure

Vorgehensweise

Angenommen, Sie wollen für eine Gruppe von Tests Abdeckungsmessungen durchführen. Einige der Tests sind aufwändiger als ein typischer Modultest (beispielsweise ein ECATT-Integrationstest). Andere müssen mit einem anderen Benutzer gestartet und ein paar müssen sogar manuell ausgeführt werden.

Eine typische Lösung für dieses Szenario ist die Einplanung von zwei Hintergrundjobs, die zum Beispiel jede zweite Woche ausgeführt werden. Der erste Job läuft jeden Montag, um eine Messung zu starten und zu persistieren. Der zweite Job läuft jeden Freitag, um die Messung abzurufen und zu stoppen. Nach Beendigung der Messung können Sie die Ergebnisse der Quelltextabdeckung berechnen.

Zwischen dem Starten und Stoppen der Messung zeichnet das Coverage API alle automatischen und manuellen Tests der Benutzer auf, die in der Messung angegeben sind.

Das Coverage API funktioniert in diesem Szenario fast wie der Coverage Analyzer (Transaktion SCOV), in dem alle Aktivitäten des angegebenen Benutzers und nicht nur die relevanten Tests aufgezeichnet werden.

Hinweis

Stellen Sie in diesem Szenario sicher, dass der zu messende Quelltext nicht importiert oder auf irgendeine Weise geändert wird, während die Messung läuft.

Wenn der gemessene Quelltext geändert wird, löscht das System automatisch die Rohdaten der betroffenen Programme. Dies ist erforderlich: Die Rohdaten stimmen nicht mehr mit dem Quelltext überein.

Alle von Ihnen berechneten Ergebnisse sind in dieser Situation nicht mehr verlässlich und nicht nachvollziehbar.

Coding-Beispiel

Der Beispielquelltext für das Sichern einer Messung und dem späteren Abrufen und Stoppen der Messung:

REPORT START_MEASUREMENT_AND_SAVE.
* This report starts a measurement and saves it.
* A second report, perhaps started interactively, 
* stops the measurement and calculates coverage 
* results. 

DATA: factory        TYPE REF TO if_scv_factory,
      measurement    TYPE REF TO if_scv_measurement,
      users          TYPE if_scv_measurement=>users,
      repository     TYPE REF TO if_scv_repository, 
      measurement_id TYPE cva_uuid,
      id_records     TYPE my_measurements.

* Create a measurement
factory = cl_scv_coverage_api=>get_factory( ).

APPEND 'AUNIT_USER' TO users. "Coverage will be recorded
APPEND 'ECATT_USER' TO users. "for these users.

measurement = factory->create_measurement(
                         i_users = users ).

* Start the measurement
measurement->start( ).

* Save the measurement and store the measurement ID
* for use when stopping the measurement.
repository = cl_scv_coverage_api=>get_repository( ).
measurement_id = repository->save_measurement( measurement ).
 
* You need to save the UUID for reloading the measurement
id_records-id = measurement_id.
id_records-date = sy-datum.
INSERT INTO z_table_of_measurements VALUES id_records.

            

Während die Messung läuft (Status Gestartet), zeichnet das Coverage API sämtliche Tests und andere Aktivitäten der Benutzer AUNIT_USER und ECATT_USER (in diesem Beispiel) auf.

Um die Messung zu beenden, die Ergebnisse zu berechnen und in Meldungen weiterzuleiten, können Sie ein zweites Programm ausführen, das so wie dieser Beispielquelltext aussieht:

REPORT STOP_MEASUREMENT_AND_REPORT.

DATA: measurement     TYPE REF TO if_scv_measurement,
      repository      TYPE REF TO if_scv_repository, 
      result          TYPE REF TO if_scv_result,  
      measurement_id  TYPE cva_uuid,
      id_records      TYPE my_measurements.

* Get the UUID of the active measurement
SELECT SINGLE * FROM my_table_of_measurements INTO id_records WHERE...
measurement_id = id_records-id.

* Get the repository
repository = cl_scv_coverage_api=>get_repository( ).

* Retrieve the measurement and stop it
measurement = repository->load_measurement( measurement_id ).

measurement->stop( ).

* Calculate and report results....
result = measurement->build_package_result( "MY_PACKAGE" ). 
...

            

Weitere Informationen über das Sichern und Abrufen von eigenständigen Messungen aus dem Repository des Coverage API finden Sie unter Schritt 6: Ergebnisse der Quelltextabdeckung sichern

Weitere Informationen über das Sichern und erneute Laden von Messungen in Messreihen finden Sie unter Schritt 5: Messungen und Ergebnisse in einer Messreihe sichern

Weitere Informationen über die Verwendung von Ergebnissen für das Melden von Statistiken zur Quelltextabdeckung und das Anzeigen von Ergebnissen finden Sie unter Schritt 3: Ergebnisse der Quelltextabdeckung berechnen, Schritt 4: In der Hierarchie der Ergebnisse navigieren und Schritt 5: Ergebnisse der Quelltextabdeckung anzeigen.