Разделы портала

Онлайн-тренинги

.
Автоматизация тестирования Web приложений под Android при помощи Robotium
10.04.2013 10:27

Публикация от Андрея Дзыни, автора тренинга Автоматизация тестирования Android приложений

Не так давно вышел релиз новой версии Robotium 4.0, который стал знаменательным в истории этого инструмента. До недавнего времени, автоматизировать тестирование компонента WebView(отображающего Web страницу внутри Native Android приложения) было возможно лишь при помощи кликов по координатам.

solo.clickOnScreen(float x, float y)

Или же посредством подключения расширения ExtSolo от компании Bitbar.

После выхода Robotium 4.0 надобность в подобного-рода хаках отпадает. Появилась возможность работать с Web элементами напрямую через объект Solo, да и еще посредством использования класса By, для формирования локатора в стиле WebDriver API

Примеры доступных команд:

clickOnWebElement(By by)

enterTextInWebElement(By by, java.lang.String text)

getCurrentWebElements(By by)

getWebElement(By by, int index)

typeTextInWebElement(By by, java.lang.String text)

waitForWebElement(By by)

Полный список команд и их описания можно посмотреть в JavaDoc API

https://robotium.googlecode.com/files/robotium-solo-4.1-javadoc.jar

Конечно, не все настолько радостно. Иногда есть проблемы со скроллингом тяжелых страниц и поиском текста, но все же, это первый шаг.

На этой неделе вышел новый, промежуточный выпуск Robotium 4.1 с небольшими дополнениями. Кто желает помочь и присоединиться к разработке инструмента - проект open source

Ниже приведу пример обращения к WebView Robotium API в конечном тестовом методе.

public void testSearchRobotium() {
By inputSearch = By.name("q");
By buttonSearch = By.name("btnG");
By containerSearchResults = By.id("search");
solo.waitForWebElement(inputSearch);
solo.clickOnWebElement(inputSearch);
solo.typeTextInWebElement(inputSearch, "Robotium");
solo.waitForWebElement(buttonSearch);
solo.clickOnWebElement(buttonSearch);
solo.waitForWebElement(containerSearchResults);
assertTrue(solo.getWebElement(containerSearchResults, 0).getText().contains("jayway"));
assertTrue(solo.searchText("Testing Android UI"));
}

Скачать проект целиком можно по ссылке.

Развитие проекта Robotium становится все более динамичным. Вполне может быть, что в ближайшем будущем мы сможем наблюдать еще одно слияние инструментов для автоматизации, но на этот раз в мобильной среде.