26. Jasmine
describe("Hello World App", function() {{
var target = UIATarget.localTarget();
function getLabel() { {
return target.frontMostApp().
mainWindow().staticTexts()[0].value(); }
it("should display "Hello World !" in the label after pressing
the "Click Me :)" button",
function() { target.frontMostApp().
mainWindow().buttons()["Click Me :)"].tap();
expect(getLabel()).toEqual("Hello World !"); });
});
32. Behavior Driven
Feature: Various scenarios that exercise different parts
of Frank
Scenario: Scrolling to the bottom of the table
Given I launch the app
When I touch "Larry Stooge"
And I touch "User Roles"
Then I should not see "Returns"
When I scroll to the bottom of the table
Then I should see "Returns"
33. Step Definition
When /^I touch the "([^"]*)" nav bar button$/
do |mark|
touch( "navigationButton marked:'#{mark}'" )
end
39. Using Android SDK
Нажатия на View
• TouchUtils.tapView(view)
Нажатия на кнопки
• getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_MENU)
Ввод текста
• sendKey(“some text”)
41. В чем проблема?
Очень часто
Нужно знать структуру
приходится добавлять
кода приложения
Thread.sleep(3000)
Большие приложения
Тесты выполняются
автоматизировать
очень долго
очень сложно
44. Robotium with WebView
private ExtSolo solo;
public void setUp() throws Exception {
super.setUp();
solo = new ExtSolo(getInstrumentation(), getActivity(),
this.getClass().getCanonicalName(), getName());
}
public void test() {
solo.clickOnHtmlElement(“userName”);
solo.enterTextIntoHtmlElement(“User”, ”userName”);
solo.htmlGoBack();
}
http://docs.testdroid.com/_pages/extsolo.html
45. Robotium выводы
Автоматические jUnit 3
ожидания Работает только с
Автоматический поиск однопроцессными
View приложениями
Автоматическое Требует базовое Activity
переключение на Activity для работы
Сам принимает решения,
например scroll
46. Запуск тестов in Parallel или in Cloud
http://testdroid.com/product/testdroid-server
http://testdroid.com/product/testdroid-cloud
56. Selenium WebDriver
public void testGoogle() throws Exception {
WebDriver driver =
new AndroidDriver() or IPhoneDriver();
driver.get("http://www.google.com");
WebElement element =
driver.findElement(By.name("q"));
element.sendKeys("Cheese!");
element.submit();
driver.quit();
}
57. Сегодня узнали
Какие есть инструменты для UI
автоматизации тестирования:
• iOS приложений
• Android приложений
Какие стоит использовать, а какие нет