Add metadata key to export test name in PCLF generated metrics.

This metadata key is temporary, as explained in bugs.webrtc.org/14757,
this information will be at some point directly accessible via the
webrtc.test_metrics.Metric.test_case field.

Bug: b/237982523, webrtc:14757
Change-Id: Ie77875a33db5961f8a5572bd1b7066ad8ba17291
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/287221
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38858}
diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
index 2b9a69a..5a81e12 100644
--- a/test/pc/e2e/BUILD.gn
+++ b/test/pc/e2e/BUILD.gn
@@ -10,7 +10,11 @@
 
 rtc_library("metric_metadata_keys") {
   testonly = true
-  sources = [ "metric_metadata_keys.h" ]
+  sources = [
+    "metric_metadata_keys.cc",
+    "metric_metadata_keys.h",
+  ]
+  deps = [ "../..:test_support" ]
 }
 
 if (!build_with_chromium) {
diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
index 189eaca..3d49f8f 100644
--- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
+++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
@@ -131,10 +131,13 @@
   for (auto& item : streams_stats_) {
     const TrackIdStreamInfoMap::StreamInfo& stream_info =
         stream_info_[item.first];
+    // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
     std::map<std::string, std::string> metric_metadata{
         {MetricMetadataKey::kAudioStreamMetadataKey, item.first},
         {MetricMetadataKey::kPeerMetadataKey, stream_info.receiver_peer},
-        {MetricMetadataKey::kReceiverMetadataKey, stream_info.receiver_peer}};
+        {MetricMetadataKey::kReceiverMetadataKey, stream_info.receiver_peer},
+        {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+         GetCurrentTestName()}};
 
     metrics_logger_->LogMetric("expand_rate", GetTestCaseName(item.first),
                                item.second.expand_rate, Unit::kUnitless,
diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
index 9ea2ef8..81ed27b 100644
--- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
+++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
@@ -936,9 +936,12 @@
     ReportResults(item.first, item.second,
                   stream_frame_counters_.at(item.first));
   }
-  metrics_logger_->LogSingleValueMetric("cpu_usage_%", test_label_,
-                                        GetCpuUsagePercent(), Unit::kUnitless,
-                                        ImprovementDirection::kSmallerIsBetter);
+  // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
+  metrics_logger_->LogSingleValueMetric(
+      "cpu_usage_%", test_label_, GetCpuUsagePercent(), Unit::kUnitless,
+      ImprovementDirection::kSmallerIsBetter,
+      {{MetricMetadataKey::kExperimentalTestNameMetadataKey,
+        webrtc_pc_e2e::GetCurrentTestName()}});
   LogFrameCounters("Global", frame_counters_);
   if (!unknown_sender_frame_counters_.empty()) {
     RTC_LOG(LS_INFO) << "Received frame counters with unknown frame id:";
@@ -1030,11 +1033,14 @@
     const FrameCounters& frame_counters) {
   TimeDelta test_duration = Now() - start_time_;
   std::string test_case_name = GetTestCaseName(ToMetricName(key));
+  // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
   std::map<std::string, std::string> metric_metadata{
       {MetricMetadataKey::kPeerMetadataKey, peers_->name(key.sender)},
       {MetricMetadataKey::kVideoStreamMetadataKey, streams_.name(key.stream)},
       {MetricMetadataKey::kSenderMetadataKey, peers_->name(key.sender)},
-      {MetricMetadataKey::kReceiverMetadataKey, peers_->name(key.receiver)}};
+      {MetricMetadataKey::kReceiverMetadataKey, peers_->name(key.receiver)},
+      {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+       webrtc_pc_e2e::GetCurrentTestName()}};
 
   double sum_squared_interframe_delays_secs = 0;
   Timestamp video_start_time = Timestamp::PlusInfinity();
diff --git a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc
index 085f1b3..ef14dee 100644
--- a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc
+++ b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc
@@ -136,8 +136,11 @@
     const std::string& peer_name,
     const VideoBweStats& video_bwe_stats) {
   std::string test_case_name = GetTestCaseName(peer_name);
+  // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
   std::map<std::string, std::string> metric_metadata{
-      {MetricMetadataKey::kPeerMetadataKey, peer_name}};
+      {MetricMetadataKey::kPeerMetadataKey, peer_name},
+      {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+       GetCurrentTestName()}};
 
   metrics_logger_->LogMetric(
       "available_send_bandwidth", test_case_name,
diff --git a/test/pc/e2e/cross_media_metrics_reporter.cc b/test/pc/e2e/cross_media_metrics_reporter.cc
index d09135d..9f80625 100644
--- a/test/pc/e2e/cross_media_metrics_reporter.cc
+++ b/test/pc/e2e/cross_media_metrics_reporter.cc
@@ -114,6 +114,7 @@
   MutexLock lock(&mutex_);
   for (const auto& pair : stats_info_) {
     const std::string& sync_group = pair.first;
+    // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
     std::map<std::string, std::string> audio_metric_metadata{
         {MetricMetadataKey::kPeerSyncGroupMetadataKey, sync_group},
         {MetricMetadataKey::kAudioStreamMetadataKey,
@@ -121,7 +122,9 @@
         {MetricMetadataKey::kPeerMetadataKey,
          pair.second.audio_stream_info.receiver_peer},
         {MetricMetadataKey::kReceiverMetadataKey,
-         pair.second.audio_stream_info.receiver_peer}};
+         pair.second.audio_stream_info.receiver_peer},
+        {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+         GetCurrentTestName()}};
     metrics_logger_->LogMetric(
         "audio_ahead_ms",
         GetTestCaseName(pair.second.audio_stream_info.stream_label, sync_group),
@@ -129,6 +132,7 @@
         webrtc::test::ImprovementDirection::kSmallerIsBetter,
         std::move(audio_metric_metadata));
 
+    // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
     std::map<std::string, std::string> video_metric_metadata{
         {MetricMetadataKey::kPeerSyncGroupMetadataKey, sync_group},
         {MetricMetadataKey::kAudioStreamMetadataKey,
@@ -136,7 +140,9 @@
         {MetricMetadataKey::kPeerMetadataKey,
          pair.second.video_stream_info.receiver_peer},
         {MetricMetadataKey::kReceiverMetadataKey,
-         pair.second.video_stream_info.receiver_peer}};
+         pair.second.video_stream_info.receiver_peer},
+        {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+         GetCurrentTestName()}};
     metrics_logger_->LogMetric(
         "video_ahead_ms",
         GetTestCaseName(pair.second.video_stream_info.stream_label, sync_group),
diff --git a/test/pc/e2e/metric_metadata_keys.cc b/test/pc/e2e/metric_metadata_keys.cc
new file mode 100644
index 0000000..cc57491
--- /dev/null
+++ b/test/pc/e2e/metric_metadata_keys.cc
@@ -0,0 +1,27 @@
+/*
+ *  Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "test/pc/e2e/metric_metadata_keys.h"
+
+#include <string>
+
+#include "test/gtest.h"
+
+namespace webrtc {
+namespace webrtc_pc_e2e {
+
+std::string GetCurrentTestName() {
+  const testing::TestInfo* test_info =
+      testing::UnitTest::GetInstance()->current_test_info();
+  return test_info->name();
+}
+
+}  // namespace webrtc_pc_e2e
+}  // namespace webrtc
diff --git a/test/pc/e2e/metric_metadata_keys.h b/test/pc/e2e/metric_metadata_keys.h
index 9a77c31..d07d4ca 100644
--- a/test/pc/e2e/metric_metadata_keys.h
+++ b/test/pc/e2e/metric_metadata_keys.h
@@ -10,9 +10,17 @@
 #ifndef TEST_PC_E2E_METRIC_METADATA_KEYS_H_
 #define TEST_PC_E2E_METRIC_METADATA_KEYS_H_
 
+#include <string>
+
 namespace webrtc {
 namespace webrtc_pc_e2e {
 
+// TODO(bugs.webrtc.org/14757): Move this function to a better location once
+// kExperimentalTestNameMetadataKey has been removed (this is here just for
+// convenience since it is the value of the kExperimentalTestNameMetadataKey
+// metadata entries).
+std::string GetCurrentTestName();
+
 // All metadata fields are present only if applicable for particular metric.
 class MetricMetadataKey {
  public:
@@ -28,6 +36,13 @@
   static constexpr char kVideoStreamMetadataKey[] = "video_stream";
   // Represents name of the sync group to which stream belongs.
   static constexpr char kPeerSyncGroupMetadataKey[] = "peer_sync_group";
+  // Represents the test name (without any peer and stream data appended to it
+  // as it currently happens with the webrtc.test_metrics.Metric.test_case
+  // field). This metadata is temporary and it will be removed once this
+  // information is moved to webrtc.test_metrics.Metric.test_case.
+  // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
+  static constexpr char kExperimentalTestNameMetadataKey[] =
+      "experimental_test_name";
 
  private:
   MetricMetadataKey() = default;
diff --git a/test/pc/e2e/peer_connection_quality_test.cc b/test/pc/e2e/peer_connection_quality_test.cc
index e631192..cfaab3d 100644
--- a/test/pc/e2e/peer_connection_quality_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test.cc
@@ -741,14 +741,20 @@
 }
 
 void PeerConnectionE2EQualityTest::ReportGeneralTestResults() {
+  // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
   metrics_logger_->LogSingleValueMetric(
       *alice_->params().name + "_connected", test_case_name_, alice_connected_,
       Unit::kUnitless, ImprovementDirection::kBiggerIsBetter,
-      {{MetricMetadataKey::kPeerMetadataKey, *alice_->params().name}});
+      {{MetricMetadataKey::kPeerMetadataKey, *alice_->params().name},
+       {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+        GetCurrentTestName()}});
+  // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
   metrics_logger_->LogSingleValueMetric(
       *bob_->params().name + "_connected", test_case_name_, bob_connected_,
       Unit::kUnitless, ImprovementDirection::kBiggerIsBetter,
-      {{MetricMetadataKey::kPeerMetadataKey, *bob_->params().name}});
+      {{MetricMetadataKey::kPeerMetadataKey, *bob_->params().name},
+       {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+        GetCurrentTestName()}});
 }
 
 Timestamp PeerConnectionE2EQualityTest::Now() const {
diff --git a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
index c275ecd..4f56ae7 100644
--- a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
@@ -157,13 +157,17 @@
               .name = "alice_connected",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kBiggerIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case",
               .name = "bob_connected",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kBiggerIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
 
           // Metrics from DefaultAudioQualityAnalyzer
           MetricValidationInfo{
@@ -174,7 +178,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "alice_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_audio",
               .name = "accelerate_rate",
@@ -183,7 +189,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "alice_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_audio",
               .name = "preemptive_rate",
@@ -192,7 +200,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "alice_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_audio",
               .name = "speech_expand_rate",
@@ -201,7 +211,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "alice_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_audio",
               .name = "average_jitter_buffer_delay_ms",
@@ -210,7 +222,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "alice_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_audio",
               .name = "preferred_buffer_size_ms",
@@ -219,7 +233,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "alice_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_audio",
               .name = "expand_rate",
@@ -228,7 +244,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "bob_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_audio",
               .name = "accelerate_rate",
@@ -237,7 +255,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "bob_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_audio",
               .name = "preemptive_rate",
@@ -246,7 +266,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "bob_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_audio",
               .name = "speech_expand_rate",
@@ -255,7 +277,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "bob_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_audio",
               .name = "average_jitter_buffer_delay_ms",
@@ -264,7 +288,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "bob_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_audio",
               .name = "preferred_buffer_size_ms",
@@ -273,7 +299,9 @@
               .metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
                             "bob_audio"},
                            {MetricMetadataKey::kPeerMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
 
           // Metrics from DefaultVideoQualityAnalyzer
           MetricValidationInfo{
@@ -285,7 +313,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "ssim",
@@ -295,7 +325,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "transport_time",
@@ -305,7 +337,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "total_delay_incl_transport",
@@ -315,7 +349,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "time_between_rendered_frames",
@@ -325,7 +361,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "harmonic_framerate",
@@ -335,7 +373,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "encode_frame_rate",
@@ -345,7 +385,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "encode_time",
@@ -355,7 +397,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "time_between_freezes",
@@ -365,7 +409,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "freeze_time_ms",
@@ -375,7 +421,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "pixels_per_frame",
@@ -385,7 +433,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "min_psnr_dB",
@@ -395,7 +445,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "decode_time",
@@ -405,7 +457,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "receive_to_render_time",
@@ -415,7 +469,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "dropped_frames",
@@ -425,7 +481,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "frames_in_flight",
@@ -435,7 +493,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "rendered_frames",
@@ -445,7 +505,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "max_skipped",
@@ -455,7 +517,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "target_encode_bitrate",
@@ -465,7 +529,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "qp",
@@ -475,7 +541,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_video",
               .name = "actual_encode_bitrate",
@@ -485,7 +553,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "alice_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "alice"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "psnr_dB",
@@ -495,7 +565,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "ssim",
@@ -505,7 +577,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "transport_time",
@@ -515,7 +589,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "total_delay_incl_transport",
@@ -525,7 +601,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "time_between_rendered_frames",
@@ -535,7 +613,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "harmonic_framerate",
@@ -545,7 +625,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "encode_frame_rate",
@@ -555,7 +637,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "encode_time",
@@ -565,7 +649,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "time_between_freezes",
@@ -575,7 +661,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "freeze_time_ms",
@@ -585,7 +673,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "pixels_per_frame",
@@ -595,7 +685,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "min_psnr_dB",
@@ -605,7 +697,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "decode_time",
@@ -615,7 +709,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "receive_to_render_time",
@@ -625,7 +721,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "dropped_frames",
@@ -635,7 +733,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "frames_in_flight",
@@ -645,7 +745,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "rendered_frames",
@@ -655,7 +757,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "max_skipped",
@@ -665,7 +769,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "target_encode_bitrate",
@@ -675,7 +781,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "actual_encode_bitrate",
@@ -685,7 +793,9 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_video",
               .name = "qp",
@@ -695,13 +805,16 @@
                            {MetricMetadataKey::kVideoStreamMetadataKey,
                             "bob_video"},
                            {MetricMetadataKey::kSenderMetadataKey, "bob"},
-                           {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                           {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case",
               .name = "cpu_usage_%",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kSmallerIsBetter,
-              .metadata = {}},
+              .metadata = {{MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
 
           // Metrics from StatsBasedNetworkQualityMetricsReporter
           MetricValidationInfo{
@@ -709,133 +822,177 @@
               .name = "bytes_discarded_no_receiver",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "packets_discarded_no_receiver",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "payload_bytes_received",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "payload_bytes_sent",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "bytes_sent",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "packets_sent",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "average_send_rate",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "bytes_received",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "packets_received",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "average_receive_rate",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "sent_packets_loss",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "bytes_discarded_no_receiver",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "packets_discarded_no_receiver",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "payload_bytes_received",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "payload_bytes_sent",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "bytes_sent",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "packets_sent",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "average_send_rate",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "bytes_received",
               .unit = Unit::kBytes,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "packets_received",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "average_receive_rate",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "sent_packets_loss",
               .unit = Unit::kUnitless,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
 
           // Metrics from VideoQualityMetricsReporter
           MetricValidationInfo{
@@ -843,37 +1000,49 @@
               .name = "available_send_bandwidth",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "transmission_bitrate",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice",
               .name = "retransmission_bitrate",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "available_send_bandwidth",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "transmission_bitrate",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob",
               .name = "retransmission_bitrate",
               .unit = Unit::kKilobitsPerSecond,
               .improvement_direction = ImprovementDirection::kNeitherIsBetter,
-              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
+              .metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
+                           {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                            GetCurrentTestName()}}},
 
           // Metrics from CrossMediaMetricsReporter
           MetricValidationInfo{
@@ -885,7 +1054,9 @@
                   {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"},
                    {MetricMetadataKey::kPeerMetadataKey, "bob"},
                    {MetricMetadataKey::kPeerSyncGroupMetadataKey, "alice"},
-                   {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                   {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                   {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                    GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/alice_alice_video",
               .name = "video_ahead_ms",
@@ -895,7 +1066,9 @@
                   {{MetricMetadataKey::kAudioStreamMetadataKey, "alice_video"},
                    {MetricMetadataKey::kPeerMetadataKey, "bob"},
                    {MetricMetadataKey::kPeerSyncGroupMetadataKey, "alice"},
-                   {MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
+                   {MetricMetadataKey::kReceiverMetadataKey, "bob"},
+                   {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                    GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_bob_audio",
               .name = "audio_ahead_ms",
@@ -905,7 +1078,9 @@
                   {{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"},
                    {MetricMetadataKey::kPeerMetadataKey, "alice"},
                    {MetricMetadataKey::kPeerSyncGroupMetadataKey, "bob"},
-                   {MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
+                   {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                   {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                    GetCurrentTestName()}}},
           MetricValidationInfo{
               .test_case = "test_case/bob_bob_video",
               .name = "video_ahead_ms",
@@ -915,7 +1090,9 @@
                   {MetricMetadataKey::kAudioStreamMetadataKey, "bob_video"},
                   {MetricMetadataKey::kPeerMetadataKey, "alice"},
                   {MetricMetadataKey::kPeerSyncGroupMetadataKey, "bob"},
-                  {MetricMetadataKey::kReceiverMetadataKey, "alice"}}}));
+                  {MetricMetadataKey::kReceiverMetadataKey, "alice"},
+                  {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+                   GetCurrentTestName()}}}));
 }
 
 }  // namespace
diff --git a/test/pc/e2e/stats_based_network_quality_metrics_reporter.cc b/test/pc/e2e/stats_based_network_quality_metrics_reporter.cc
index 155c81a..27a15f1 100644
--- a/test/pc/e2e/stats_based_network_quality_metrics_reporter.cc
+++ b/test/pc/e2e/stats_based_network_quality_metrics_reporter.cc
@@ -370,8 +370,11 @@
     const NetworkLayerStats& network_layer_stats,
     int64_t packet_loss,
     const Timestamp& end_time) {
+  // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
   std::map<std::string, std::string> metric_metadata{
-      {MetricMetadataKey::kPeerMetadataKey, pc_label}};
+      {MetricMetadataKey::kPeerMetadataKey, pc_label},
+      {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+       GetCurrentTestName()}};
   metrics_logger_->LogSingleValueMetric(
       "bytes_discarded_no_receiver", GetTestCaseName(pc_label),
       network_layer_stats.endpoints_stats.overall_incoming_stats
@@ -438,8 +441,11 @@
       stats.endpoints_stats.overall_incoming_stats.packets_received >= 2
           ? stats.endpoints_stats.overall_incoming_stats.AverageReceiveRate()
           : DataRate::Zero();
+  // TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
   std::map<std::string, std::string> metric_metadata{
-      {MetricMetadataKey::kPeerMetadataKey, peer_name}};
+      {MetricMetadataKey::kPeerMetadataKey, peer_name},
+      {MetricMetadataKey::kExperimentalTestNameMetadataKey,
+       GetCurrentTestName()}};
   rtc::StringBuilder log;
   log << "Raw network layer statistic for [" << peer_name << "]:\n"
       << "Local IPs:\n";