2016-05-23 3 views
10

Я хотел бы написать некоторый тест пользовательского интерфейса для своего приложения для Android, чтобы автоматизировать скриншоты.Нет ID для тестирования Android UI

Моего приложение написано с React-Native.

Для того, чтобы писать свои тесты в необходимости знать ресурсный идентификатор моего компонента, но как вы можете видеть на этом скриншоте я не вижу какой-либо ресурсы идентификатора с пользовательским интерфейсом Средство просмотра Automator в этом примере приложения React-Native.

Look this picture.

Я хотел бы знать, если есть способ, чтобы дать некоторые идентификаторы своих компонентов, так что я могу написать какой-нибудь тест, или если есть другой способ, чтобы выбрать мои компоненты.

Примечание: Я пытаюсь написать тест эспрессо.

ответ

0

Да, есть! Вы можете передать опору testID любому компоненту, который реализует опоры <View />, так как documented here.

TestID строка

Используется для обнаружения этого вида в тестах от конца до конца.

См. Также эту информацию blogpost о UITesting in React Native. Речь идет о тестировании iOS, но часть javascript будет одинаковой для Android.

0

Прежде всего, идентификатор каждого компонента пользовательского интерфейса Android должен быть определен в папке ресурсов (res) в виде XML-макетов (вам нужно убедиться, что вы определили его в правильных тегах) и получить идентификаторы в Android, пожалуйста, выполните следующие действия:

1. Launch Android Studio, Click on "Android Device Monitor" icon next to "SDK Manager" 

2. Connect your device and launch the application 

3. Select your device name from the list of devices on the left panel 

4. Click on Dump "View Hierarchy for UI Automate" 

5. Now you can hoover over any view on thde device dump and can see Resource-d in the node details in the right column. 

Примечания: вы также можете принять скриншоты

+1

Это не относится для приложений, написанных на основе реакции, которые не используют xml-макет. – ArthurDenture

0

1) Первое, что первым, если ее ваш проект вы можете перейти к раскладке и добавить идентификатор к этому компоненту, а затем принять скриншот с помощью программы просмотра uiautomator вы найдете свой ресурс id

2) Если вариант 1 невозможен (это очень маловероятно), вы все равно можете его проверить, так как со снимка экрана я вижу только один блок edittext, поэтому с помощью uiauatomator вы можете протестировать его на основе класса. Здесь ниже код:

private static UiDevice mDevice; 


func(){ 

mDevice = UiDevice.getInstance(getInstrumentation()); 


UiObject xyz=new UiObject(new UiSelector().**getClass**(android.widget.EditText)); 


xyz.click(); 


xyz.setText("abcdef"); 
} 

// Я не уверен, что его GetClass() или GetClassName() проверка как опция

// xyz.click() необходимо, как и в uiautoamtor вы не сможете правой текст

в текстовом поле до тех пор, пока он не будет выбран

6

testID работает только на IOS, и не отображается на ресурс-идентификатор в Android.

К компоненту можно указать accessibilityLabel.В uiautomatorviewer он показывает, как content-desc

Чтобы быть кросс-платформенный, вы должны указать, как:

<Text style={styles.welcome} accessibilityLabel="MyId" testID="MyId"> 
    Welcome! 
</Text> 

Вы можете найти его, используя что-то вроде WebDriver с tilde selectorbrowser.waitForExist("~MyId")

+0

что это за рамки тестирования? Я не могу найти браузер в Appium только драйвер. – liminal18

+0

это используется [http://webdriver.io] (http://webdriver.io), который управляет Appium – eleventy