Выполнение тестов интеграции Flutter в ферме устройств AWS, Saucelabs, лаборатории тестирования Firebase и т. Д. - PullRequest
0 голосов
/ 14 ноября 2018

Как запустить тесты интеграции флаттера (flutter_driver) не локально в инфраструктуре, такой как AWS Device Farm, Saucelabs, Firebase Test Lab?

Запуск тестов flutter_driver на моем локальном компьютере работает гладко и легко, однако в облачных сервисах мобильного тестирования не установлены необходимые зависимости для использования команд CLI Flutter.

В репозитории Flutter есть несколько мест, которые указывают, что этовозможно , однако мне трудно найти именно то, что должно произойти, чтобы сделать это возможным (у меня ограниченный опыт тестирования интеграции с Android и iOS).

Несколько ссылок янашёл :
Комментарий, обсуждающий интеграционный тест в flutter_gallery: https://github.com/flutter/flutter/issues/18879#issuecomment-400816050

Проблема github для добавления интеграционного теста Firebase Test Lab: https://github.com/flutter/flutter/issues/11718

Что мне нужно добавить в мое приложение, чтобы можно было проводить удаленное тестирование интеграции в AWS Device Farm, Saucelabs, Firebase TestЛаборатория и т. Д.

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Примечание: здесь рассматриваются предположения, которые приводят к вашему вопросу. Не прямой ответ на ваш вопрос.

Можно выполнить интеграционные тесты Flutter в облаке, используя только эмуляторы (без реальных устройств). В следующей статье описывается, как его настроить. В статье приведен рабочий пример Travis-CI.

Тестирование флаттера, виджетов и интеграции с эмуляторами IOS и Android на Travis-CI

Исходный код на GitHub со ссылкой на последнюю сборку, включая результаты интеграционных тестов, работающих на iOS и Android, можно найти здесь . Не стесняйтесь клонировать и использовать в качестве отправной точки для вашего собственного проекта.

Выполнение интеграционных тестов на реальных устройствах - это, вероятно, то, что вам нужно, если вы создаете сложное приложение с широким распространением (много пользователей) и т. Д. *

0 голосов
/ 16 ноября 2018

Хотя мы официально не поддерживаем инфраструктуру Flutter и тесты Flutter на AWS Device Farm, у нас есть способ запустить эти тесты, используя наш «режим пользовательской среды» и предварительно выбрав другую поддерживаемую среду.Я бы посоветовал сделать следующее:

  • У меня очень минимальный фиктивный тест для Appium Python, поддерживаемой тестовой среды, расположенной по адресу https://s3 -us-west-2.amazonaws.ком / AWS-devicefarm-поддержка / test_bundle_slim.zip .Загрузите его оттуда и, используя инструмент командной строки zip, добавьте свои локальные тесты в этот zip-файл с помощью команды, например "zip -r ~ / Downloads / test_bundle_slim.zip flutter-tests /"
  • Перейдите в AWS Device Farm, настройте тестовый прогон автоматизации, загрузите свое приложение и перейдите на экран, где вы выбираете тип теста.Выберите Appium Python, загрузите свой zip-файл, и AWS Device Farm примет тест из-за оригинальных фиктивных файлов Appium Python, которые мы оставили в zip-файле.
  • Выберите ниже «настроить свою тестовую среду»,и появится новое окно ниже с тестовым файлом YAML.Поместите следующие строки в раздел pre-test вашей тестовой спецификации вместо существующего кода, используемого для запуска сервера Appium:

{code}

  - >-
    if [ $DEVICEFARM_DEVICE_PLATFORM_NAME = "Android" ];
    then
        # Run EC2 setup code here
        curl https://storage.googleapis.com/flutter_infra/releases/beta/linux/flutter_linux_v0.11.3-beta.tar.xz -o flutter_linux_v0.11.3-beta.tar.xz
        tar xf flutter_linux_v0.11.3-beta.tar.xz
    fi

    if [ $DEVICEFARM_DEVICE_PLATFORM_NAME = "iOS" ];
    then
        # Run Mac setup code here
        curl https://storage.googleapis.com/flutter_infra/releases/beta/macos/flutter_macos_v0.11.3-beta.zip -o flutter_macos_v0.11.3-beta.zip
        unzip -qq flutter_macos_v0.11.3-beta.zip
    fi

  - mv flutter ~/flutter
  - echo "export PATH=$PATH:$HOME/flutter/bin">> ~/.bash_profile
  - export PATH=$PATH:$HOME/flutter/bin
  - flutter devices

{code}

  • Аналогичным образом, перейдите в раздел теста файла спецификации теста и удалите тестовую команду python "bin / py.test" и замените ее своей тестовой командой Flutter, такой как "flutter drive --target =. / flutter-tests / main.dart
  • Сохраните и закройте этот файл спецификации теста и завершите настройку автоматического запуска, выбрав устройства и настроив их состояние.

Удачи в тестировании на AWS Device Farm! Я подтвердил, что эти шаги действительно помогают правильно настроить Flutter на нашей платформе тестирования.

...