diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php
index b77618ad57e6c4c5137ffb57976c7f67accd8a1c..729dbef36b4a5dfd339a352fc4be718a4d10c508 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\migrate_drupal_ui\Functional;
 
+use Drupal\Core\Logger\RfcLogLevel;
 use Drupal\Tests\migrate_drupal\Traits\CreateTestContentEntitiesTrait;
 
 /**
@@ -11,6 +12,27 @@ abstract class MigrateUpgradeExecuteTestBase extends MigrateUpgradeTestBase {
 
   use CreateTestContentEntitiesTrait;
 
+  /**
+   * Indicates if the watchdog logs should be output.
+   *
+   * @var bool
+   */
+  protected $outputLogs = FALSE;
+
+  /**
+   * The admin username after the migration.
+   *
+   * @var string
+   */
+  protected $migratedAdminUserName = 'admin';
+
+  /**
+   * The number of expected logged errors of type migrate_drupal_ui.
+   *
+   * @var string
+   */
+  protected $expectedLoggedErrors = 0;
+
   /**
    * {@inheritdoc}
    */
@@ -22,6 +44,17 @@ protected function setUp(): void {
 
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function tearDown(): void {
+    if ($this->outputLogs) {
+      $this->outputLogs($this->migratedAdminUserName);
+      $this->assertLogError();
+    }
+    parent::tearDown();
+  }
+
   /**
    * Executes an upgrade and then an incremental upgrade.
    */
@@ -70,4 +103,36 @@ public function useTestMailCollector() {
     $this->writeSettings($settings);
   }
 
+  /**
+   * Asserts log errors.
+   */
+  public function assertLogError() {
+    $db = \Drupal::service('database');
+    $num_errors = $db->select('watchdog', 'w')
+      ->fields('w')
+      ->condition('type', 'migrate_drupal_ui')
+      ->condition('severity', RfcLogLevel::ERROR)
+      ->countQuery()
+      ->execute()
+      ->fetchField();
+    $this->assertSame($this->expectedLoggedErrors, (int) $num_errors);
+  }
+
+  /**
+   * Preserve the logs pages.
+   */
+  public function outputLogs($username) {
+    // Ensure user 1 is accessing the admin log. Change the username because
+    // the migration changes the username of user 1 but not the password.
+    if (\Drupal::currentUser()->id() != 1) {
+      $this->rootUser->name = $username;
+      $this->drupalLogin($this->rootUser);
+    }
+    $this->drupalGet('/admin/reports/dblog');
+    while ($next_link = $this->getSession()->getPage()->findLink('Next page')) {
+      $next_link->click();
+    }
+
+  }
+
 }
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
index d14d64ca564b0d2685a295fc49b3e7f5ec091703..f794224e5cf0981384b0f11c15f027d722e31bc8 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
@@ -54,6 +54,11 @@ protected function setUp(): void {
 
     $this->loadFixture($this->getModulePath('migrate_drupal') . '/tests/fixtures/drupal6.php');
 
+    // Enable saving the logs and set the post migration admin user name.
+    $this->outputLogs = TRUE;
+    $this->migratedAdminUserName = 'root';
+    $this->expectedLoggedErrors = 36;
+
     // @todo Remove this in https://www.drupal.org/node/3267515
     \Drupal::service('module_installer')->uninstall(['rdf']);
   }
@@ -205,6 +210,10 @@ public function testUpgradeAndIncremental() {
     $this->assertFollowUpMigrationResults();
 
     $this->assertEmailsSent();
+
+    // Save logs and check the error count.
+    $this->outputLogs('root');
+    $this->assertLogError();
   }
 
   /**
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php
index d4f52fdf5b7eb8aade3e3f9e8d04411adb0382a9..ec21a350b4301f30ff350acd21d112d95a874d25 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php
@@ -45,6 +45,9 @@ class Upgrade7Test extends MigrateUpgradeExecuteTestBase {
   protected function setUp(): void {
     parent::setUp();
 
+    // Install the Drupal 6 and Drupal 7 administration theme.
+    \Drupal::service('theme_installer')->install(['seven']);
+
     // @todo remove in https://www.drupal.org/project/drupal/issues/3267040
     // Delete the existing content made to test the ID Conflict form. Migrations
     // are to be done on a site without content. The test of the ID Conflict
@@ -57,6 +60,11 @@ protected function setUp(): void {
 
     $this->loadFixture($this->getModulePath('migrate_drupal') . '/tests/fixtures/drupal7.php');
 
+    // Enable saving the logs and set the post migration admin user name.
+    $this->outputLogs = TRUE;
+    $this->migratedAdminUserName = 'admin';
+    $this->expectedLoggedErrors = 25;
+
     // @todo Remove this in https://www.drupal.org/node/3267515
     \Drupal::service('module_installer')->uninstall(['rdf']);
   }
@@ -73,7 +81,7 @@ protected function getSourceBasePath() {
    */
   protected function getEntityCounts() {
     return [
-      'block' => 27,
+      'block' => 43,
       'block_content' => 1,
       'block_content_type' => 1,
       'comment' => 4,
@@ -235,6 +243,10 @@ public function testUpgradeAndIncremental() {
     $this->assertFollowUpMigrationResults();
 
     $this->assertEmailsSent();
+
+    // Save logs and check the error count.
+    $this->outputLogs('admin');
+    $this->assertLogError();
   }
 
   /**