Автоматизация игр, написанных на Unity..

Всем привет! Подскажите пожалуйста, есть ли инструменты, позволяющие заавтоматизировать игры написанные на Unity? Слышал/читал про Unity Test Tools, но я так понял это инструмент больше для разработчиков, для написание unit тестов. А хотелось бы взаимодействовать с интерфейсом игры, как это делает Selenium для web, или Genie для Flash. Спасибо.

1 лайк

Юнити на любой платформе - один элемент, взаимодействовать с интерфейсом в нем можно лишь по координатам любой тулзой, селениум в вебе, аппиумом на ios/android и тд. Ответ, в принципе, очевиден - никак. С другой стороны юнит тесты там это смесь functional & unit, наиболее близкая альтернатива в вебе - angularjs и его юнит тесты, которые тестируют не столько конкретные функции, как общую логику отдельных элементов интерфейса/контроллеров и тд.

Попробуйте Sikuli

Имхо интерфейс игр слишком динамичный для sikuli.

Не согласен с вами по части динамичности интерфейса. В большинстве игр интерфейс статичен, динамична сама игра. Ну и я просто оставлю это тут: http://www.sikuli.org/gaming.html Инструмент конечно не панацея, но определенные проверки им можно сделать.

всё зависит от того, где вы хотите гонять тесты. Если на ПК - Сикули Вам поможет, главное всё правильно организовать. Если же Вас интересуют моб. устройства и запуск тестов там - это вопрос другой, посмотрите в сторону ФМБТ(fMBT).

На конференции DevConFu был доклад Филиппа Кекса из Creative Mobile про тестирование игр на Unity.

Видео: - YouTube
Слайды: http://gamedev.ee/wp-content/uploads/Filipp-Keks-Test-Automation-GameDevDays.pdf

1 лайк

@asolntsev, спасибо Андрей, доклад действительно стоящий. У меня уже начали опускаться руки, а тут как второе дыханье открылось. Нашел похожий его доклад, но уже на русском языке, где он в конце говорит, что может выслать исходники реализованного фреймворка. Отправил ему письмо с просьбой прислать, но пока тишина)

3 лайка

Я сейчас занимаюсь разработкой фреймворка для тестирования Unity3d приложений. Фреймворк называется Puppetry. Вот линка и документация.

С помощью Puppetry, вы можете находить игровые обьекты (GameObject) в юнити по их имени и расположении в иерархии проэкта, а потом над ними емулировать разные действия. Например: Click, SendKeys, DragTo и т.д… А для построения проверок, можно проверять существует ли обьект, активный ли он и брать его компоненты.
Тесты с Puppetry, лучше выполнять в Эдиторе юнити. Но если есть необходимость тестировать на девайсах, можно скомбинировать Puppetry с Appium-ом. С помощью Puppetry вы будете получать координаты обьекта, а с помощью Апиума уже кликать по этим координатам.

1 лайк

https://poco.readthedocs.io/en/latest/