Sie können eine Gruppe von Messungen zusammenführen, um eine neue Messung anzulegen, die die zusammengeführten Messungen miteinander kombiniert.
Beispiel: Angenommen, Sie haben eine Gruppe von ähnlichen Messungen, die eigentlich zusammen gehören. Sie wollen eine einzige aggregierte Statistik zur Quelltextabdeckung für die Verwaltung auf einer höheren Ebene. Das Zusammenführen ermöglicht Ihnen diese aggregierte Ergebnis.
Sie können die zusammengeführte Messung genauso verwenden wie jede andere Messung - Sie können Ergebnisse daraus berechnen, sie im Repository sichern usw.
Das Zusammenführen kombiniert die Rohdaten der Messungen basierend auf einer der drei Strategien:
CE_SCV_MERGE_STRATEGY=>UNION: Legt eine Messung an, die die Quelltextabdeckung aller Programme in den zusammengeführten Messungen aggregiert. Beantwortet die Frage: "Was ist die Gesamtquelltextabdeckung, die sich aus meinen Messungen ergibt?"
CE_SCV_MERGE_STRATEGY=>INTERSECTION: Legt eine Messung an, die die Quelltextabdeckung aller Programme aggregiert, die während der beiden Messungen ausgeführt wurden. Beantwortet die Frage: "Was ist die Gesamtquelltextabdeckung der Objekte, die in beiden Messungen ausgeführt wurden?"
CE_SCV_MERGE_STRATEGY=>DIFFERENCE: Legt eine Messung an, die die Quelltextabdeckung aller Programme meldet, die während der ersten Messung und nicht in einer anderen der zusammengeführten Messungen ausgeführt wurden. Beantwortet die Frage: "Was ist die Quelltextabdeckung der Objekte, die nur in einer Messungen ausgeführt wurden?"
Voraussetzungen für das Kombinieren von Messungen:
Die Rohdaten aller Messungen, die zusammengeführt werden sollen, müssen noch verfügbar sein (nicht gelöscht oder finalisiert).
Die Messungen, die zusammengeführt werden sollen, wurden gestoppt (es werden keine Daten mehr gesammelt).
Sie können beliebig viele Messungen gleichzeitig zusammenführen.
Coding-Beispiel
Beispielquelltext für das Zusammenführen von Messungen:
* Source measurements DATA: factory TYPE REF TO if_scv_factory, users TYPE if_scv_measurement=>users, measurement TYPE REF TO if_scv_measurement, another_measurement TYPE REF TO if_scv_measurement. * Merging of measurements DATA: measurements TYPE if_scv_measurement=>tab, merged_measurement TYPE REF TO if_scv_measurement. * Results DATA: result TYPE REF TO if_scv_result, coverage TYPE REF TO if_scv_coverage, text TYPE string. * Create two measurements and measure two test programs factory = cl_scv_coverage_api=>get_factory( ). APPEND sy-uname TO users. measurement = factory->create_measurement( i_local_server_only = abap_true i_users = users ). another_measurement = factory->create_measurement( i_local_server_only = abap_true i_users = users ). * First measurement measurement->start( ). SUBMIT rsdssmpl_performance AND RETURN. measurement->stop( ). * Second measurement another_measurement->start( ). SUBMIT rsdssmpl_status AND RETURN. another_measurement->stop( ). * Report the code coverage of the first measurement result = measurement->build_package_result( 'SMOI' ). coverage = result->get_coverage( if_scv_coverage=>con_statement ). text = |Package SMOI has after measurement 1 a statement coverage of { coverage->get_percentage( ) }%|. WRITE:/ text. * Report the code coverage of the second measurement result = another_measurement->build_package_result( 'SMOI' ). coverage = result->get_coverage( if_scv_coverage=>con_statement ). text = |Package SMOI has after measurement 2 a statement coverage of { coverage->get_percentage( ) }%|. WRITE:/ text. * Merge the measurements * Insert the measurements to be merged into a parameter table INSERT measurement INTO TABLE measurements. INSERT another_measurement INTO TABLE measurements. * Here are the constants for the supported merge strategies * CE_SCV_MERGE_STRATEGY=>UNION Merge Coverage Measurements * CE_SCV_MERGE_STRATEGY=>INTERSECTION Intersect Coverage Measurements * CE_SCV_MERGE_STRATEGY=>DIFFERENCE Report Differences of Coverage Measurements * We use the UNION strategy to aggregate the code coverages merged_measurement = factory->merge_measurements( i_name = 'myMerger' i_measurements = measurements i_strategy = ce_scv_merge_strategy=>union ). * Report the merged code coverage result = merged_measurement->build_package_result( 'SMOI' ). coverage = result->get_coverage( if_scv_coverage=>con_statement ). text = |Object SMOI has a merged statement coverage of { coverage->get_percentage( ) }%|. WRITE: / text.
In diesem Beispiel werden zwei eigenständige Messungen kombiniert. Sie können jedoch auch Messungen in Messreihen zusammenführen. Sie können sogar zusammengeführte Messungen zusammenführen.