Devicelab memory usage test that navigates repeatedly to a screen within Gallery (#7137)

This commit is contained in:
Jason Simmons 2016-12-05 11:08:25 -08:00 committed by GitHub
parent 7034a03c67
commit 7da3ab634a
5 changed files with 68 additions and 0 deletions

View File

@ -0,0 +1,12 @@
// Copyright 2016 The Chromium 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 'dart:async';
import 'package:flutter_devicelab/tasks/perf_tests.dart';
import 'package:flutter_devicelab/framework/framework.dart';
Future<Null> main() async {
await task(createGalleryNavigationMemoryTest());
}

View File

@ -52,6 +52,14 @@ TaskFunction createHelloWorldMemoryTest() {
);
}
TaskFunction createGalleryNavigationMemoryTest() {
return new MemoryTest(
'${flutterDirectory.path}/examples/flutter_gallery',
'io.flutter.examples.gallery',
testTarget: 'test_driver/memory_nav.dart',
);
}
/// Measure application startup performance.
class StartupTest {
static const Duration _startupTimeout = const Duration(minutes: 2);

View File

@ -121,6 +121,12 @@ tasks:
stage: devicelab
required_agent_capabilities: ["has-android-device"]
flutter_gallery__memory_nav:
description: >
Measures memory usage after repeated navigation in Gallery.
stage: devicelab
required_agent_capabilities: ["has-android-device"]
# iOS on-device tests

View File

@ -0,0 +1,11 @@
// Copyright 2016 The Chromium 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_driver/driver_extension.dart';
import 'package:flutter_gallery/main.dart' as app;
void main() {
enableFlutterDriverExtension();
app.main();
}

View File

@ -0,0 +1,31 @@
import 'dart:async';
import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';
void main() {
group('flutter gallery transitions', () {
FlutterDriver driver;
setUpAll(() async {
driver = await FlutterDriver.connect();
});
tearDownAll(() async {
if (driver != null)
await driver.close();
});
test('navigation', () async {
SerializableFinder menuItem = find.text('Text fields');
await driver.scrollIntoView(menuItem);
await new Future<Null>.delayed(new Duration(milliseconds: 500));
for (int i = 0; i < 15; i++) {
await driver.tap(menuItem);
await new Future<Null>.delayed(new Duration(milliseconds: 1000));
await driver.tap(find.byTooltip('Back'));
await new Future<Null>.delayed(new Duration(milliseconds: 1000));
}
}, timeout: new Timeout(new Duration(minutes: 1)));
});
}