Имитация нажатия кнопки «Домой» - тестирование iPhone - PullRequest
4 голосов
/ 09 августа 2011

Итак, я работаю над тестированием приложения для iPhone.Я пытаюсь настроить тестовые случаи, которые мы можем использовать позже, используя UIAutomation (я не очень привязан к этому - я могу переключиться на какую-то другую среду).Мне нужно создать тест, который выглядит примерно так:

+ Launches application
+ Clicks a few specific buttons
+ Hits the home button exiting the application
+ Relaunches the application
+ Checks the status of the application

Кто-нибудь знает, как это сделать или какую платформу использовать для этого?

Заранее спасибо.

Ответы [ 4 ]

7 голосов
/ 09 августа 2011

Вы не можете имитировать нажатие кнопки «Домой», но вы можете заставить приложение выйти, как если бы оно было.Вызов [[UIApplication sharedApplication] terminate]; приведет к прекращению или (в случае iOS 4.x) фонового приложения.Однако вы не сможете перезапустить приложение с помощью UIAutomation.

Вы можете попробовать UIAutomation в сочетании со сценарием записи экрана, который позволяет воспроизводить движения мыши и щелчки.Это позволит вам напрямую взаимодействовать с симулятором для таких вещей, как нажатие кнопок «Домой» и нажатий значков приложений.

В качестве альтернативы вы можете получить «достаточно хорошее» тестирование, используя UIATarget класс .Согласно документам,

Класс UIATarget представляет высокоуровневые элементы пользовательского интерфейса тестируемой системы (SUT), то есть ваше приложение, iOS и подключенныйустройство, на котором они работают.Ваши тестовые сценарии, написанные на JavaScript и работающие в сочетании с инструментом автоматизации пользовательского интерфейса, используют этот класс и связанные с ним классы UIA для проверки SUT и регистрации результатов.

Используя UIATarget.localTarget().deactivateAppForDuration(seconds);, вы можете создать фон для своего приложенияв течение n секунд.

Используйте этот метод для проверки смещения вашего приложения в фоновый контекст выполнения и из него.Обратите внимание, что приложения, созданные с использованием iOS SDK 4.0 или более поздней версии и работающие в iOS 4.0 и более поздних версиях, не обязательно завершаются, когда пользователь нажимает кнопку «Домой».См. Руководство по программированию приложений iOS для деталей многозадачности и контекста фонового выполнения.

3 голосов
/ 20 июля 2016

Можно нажать кнопку home в Xcode 7 с помощью UI Testing.

XCUIDevice.sharedDevice().pressButton(XCUIDeviceButton.Home)

Источник: https://stackoverflow.com/a/33087217/142358

1 голос
/ 09 августа 2011

Я не думаю, что это возможно, но вы могли бы использовать

UIATarget.localTarget().deactivateAppForDuration(100);

Чтобы разместить приложение в фоновом режиме на определенное время.

0 голосов
/ 23 мая 2017

нажимает домашнюю кнопку устройства в iOS

def hit_home
  home =`osascript -e 'tell application "System Events" to tell process "iOS Simulator"' -e'keystroke "H" using command down' -e'delay 2' -e'end tell'`
  puts("home button exits - #{home.to_i}")
end
...