// Copyright 2018 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_driver/flutter_driver.dart'; import 'package:test/test.dart' hide TypeMatcher, isInstanceOf; import 'package:macrobenchmarks/common.dart'; void main() { const String kName = 'cull_opacity_perf'; test(kName, () async { final FlutterDriver driver = await FlutterDriver.connect(); // The slight initial delay avoids starting the timing during a // period of increased load on the device. Without this delay, the // benchmark has greater noise. // See: https://github.com/flutter/flutter/issues/19434 await Future.delayed(const Duration(milliseconds: 250)); await driver.forceGC(); final SerializableFinder button = find.byValueKey(kCullOpacityRouteName); expect(button, isNotNull); await driver.tap(button); // Wait for the page to load await Future.delayed(const Duration(seconds: 1)); final Timeline timeline = await driver.traceAction(() async { await Future.delayed(const Duration(seconds: 10)); }); final TimelineSummary summary = TimelineSummary.summarize(timeline); summary.writeSummaryToFile(kName, pretty: true); summary.writeTimelineToFile(kName, pretty: true); driver.close(); }); }