diff --git a/dev/devicelab/bin/tasks/integration_test_test.dart b/dev/devicelab/bin/tasks/integration_test_test.dart
new file mode 100644
index 0000000..6697a87
--- /dev/null
+++ b/dev/devicelab/bin/tasks/integration_test_test.dart
@@ -0,0 +1,12 @@
+// Copyright 2014 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter_devicelab/tasks/integration_tests.dart';
+import 'package:flutter_devicelab/framework/adb.dart';
+import 'package:flutter_devicelab/framework/framework.dart';
+
+Future<void> main() async {
+  deviceOperatingSystem = DeviceOperatingSystem.android;
+  await task(createEndToEndIntegrationTest());
+}
diff --git a/dev/devicelab/bin/tasks/integration_test_test_ios.dart b/dev/devicelab/bin/tasks/integration_test_test_ios.dart
new file mode 100644
index 0000000..532a7fd
--- /dev/null
+++ b/dev/devicelab/bin/tasks/integration_test_test_ios.dart
@@ -0,0 +1,12 @@
+// Copyright 2014 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter_devicelab/tasks/integration_tests.dart';
+import 'package:flutter_devicelab/framework/adb.dart';
+import 'package:flutter_devicelab/framework/framework.dart';
+
+Future<void> main() async {
+  deviceOperatingSystem = DeviceOperatingSystem.ios;
+  await task(createEndToEndIntegrationTest());
+}
diff --git a/dev/devicelab/lib/tasks/integration_tests.dart b/dev/devicelab/lib/tasks/integration_tests.dart
index a7857f6..86023dd 100644
--- a/dev/devicelab/lib/tasks/integration_tests.dart
+++ b/dev/devicelab/lib/tasks/integration_tests.dart
@@ -124,6 +124,13 @@
   );
 }
 
+TaskFunction createEndToEndIntegrationTest() {
+  return IntegrationTest(
+    '${flutterDirectory.path}/dev/integration_tests/ui',
+    'integration_test/integration_test.dart',
+  );
+}
+
 class DriverTest {
   DriverTest(
     this.testDirectory,
@@ -162,3 +169,29 @@
     });
   }
 }
+
+class IntegrationTest {
+  IntegrationTest(this.testDirectory, this.testTarget);
+
+  final String testDirectory;
+  final String testTarget;
+
+  Future<TaskResult> call() {
+    return inDirectory<TaskResult>(testDirectory, () async {
+      final Device device = await devices.workingDevice;
+      await device.unlock();
+      final String deviceId = device.deviceId;
+      await flutter('packages', options: <String>['get']);
+
+      final List<String> options = <String>[
+        '-v',
+        '-d',
+        deviceId,
+        testTarget,
+      ];
+      await flutter('test', options: options);
+
+      return TaskResult.success(null);
+    });
+  }
+}
diff --git a/dev/integration_tests/ui/integration_test/integration_test.dart b/dev/integration_tests/ui/integration_test/integration_test.dart
new file mode 100644
index 0000000..63a1b8d
--- /dev/null
+++ b/dev/integration_tests/ui/integration_test/integration_test.dart
@@ -0,0 +1,17 @@
+// Copyright 2014 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter_test/flutter_test.dart';
+import 'package:integration_ui/build_mode.dart' as app;
+
+void main() {
+  group('Integration Test', () {
+    testWidgets('smoke test', (WidgetTester tester) async {
+        app.main();
+        await tester.pumpAndSettle();
+
+        expect(find.text('Hello, world!'), findsOneWidget);
+      });
+  });
+}
diff --git a/dev/integration_tests/ui/pubspec.yaml b/dev/integration_tests/ui/pubspec.yaml
index 73f236b..e18cb13 100644
--- a/dev/integration_tests/ui/pubspec.yaml
+++ b/dev/integration_tests/ui/pubspec.yaml
@@ -13,6 +13,8 @@
     sdk: flutter
   flutter_driver:
     sdk: flutter
+  integration_test:
+    sdk: flutter
   test: 1.16.5
 
   _fe_analyzer_shared: 19.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
diff --git a/dev/prod_builders.json b/dev/prod_builders.json
index d0b8e07..bc38126 100644
--- a/dev/prod_builders.json
+++ b/dev/prod_builders.json
@@ -727,6 +727,12 @@
       "flaky": false
     },
     {
+      "name": "Mac_android integration_test_test",
+      "repo": "flutter",
+      "task_name": "mac_android_integration_test_test",
+      "flaky": false
+    },
+    {
       "name": "Mac_android microbenchmarks",
       "repo": "flutter",
       "task_name": "mac_android_microbenchmarks",
@@ -1063,6 +1069,12 @@
       "flaky": false
     },
     {
+      "name": "Mac_ios integration_test_test_ios",
+      "repo": "flutter",
+      "task_name": "mac_ios_integration_test_test_ios",
+      "flaky": false
+    },
+    {
       "name": "Mac_ios ios_app_with_extensions_test",
       "repo": "flutter",
       "task_name": "mac_ios_ios_app_with_extensions_test",
