Комментарии 7
Молодцы!
У нас примерно тоже только Appium + Java + TestNG + Allure.
Из плюсов на Java можно писать умопомрачительные локаторы
@iOSXCUITFindBy(id = "PT5PlanSelectorView")
@iOSXCUITFindAll(value = {
@iOSXCUITBy(id = "bottomButton"),
@iOSXCUITBy(id = "otherButton")}, priority = 1)
@AndroidFindBy(id = "aftv_button_text")
private WebElement choosePlanButton;
// or
@iOSXCUITFindBy(iOSNsPredicate = "type == 'XCUIElementTypeButton' AND (label == 'Next' OR label == 'View your spending')")
@AndroidFindAll(value = {
@AndroidBy(id = "a193_continue_button"), // old
@AndroidBy(id = "pb_mm1") // new
})
private WebElement viewSpendingButton;
пример теста:
login(getCustomer())
.tapBurgerButton().isBurgerMenuPageLoaded()
.tapMyPlanButton()
.isMyPlanPageLoaded();
// check plan monthly fee
resultDB = myApp().myPlanPage().getPlanMonthlyFee();
expectedBD = PlanFees.getMonthly(tier, false);
getSoftAssert().assertEquals(resultDB, expectedBD, "MyPlan(): Monthly fee NOT correct");
// check free withdrawal amount left
resultDB = myApp().myPlanPage().getFreeATMAndTopUps(getCustomer());
expectedBD = AtmAndCashTopUps.valueOf(tier.name()).getFreeAtmAndTopUp();
getSoftAssert().assertEquals(resultDB, expectedBD, "Free withdrawal amount NOT correct'");
Видео всех тестов вставляем в отчет тоже.
Поделитесь для сравнения количеством тестов и скоростью выполнения. Спасибо.
На проекте 350~ тестов, по времени тест на Appium идет 1-3 минуты. В целом довольно медленно, но много работы со списками, мы решаем проблему с помощью параллельного запуска. Так же есть довольно значительное количество нативных тестов на espresso/allure kotlin/junit4, они кратно быстрее и стабильнее.
iOS медленнее соглашусь, Android скорость такая что пытается тапать кнопку на экране, пока она еще появляется. Решается отрубанием анимации. Это кстати и для iOS помогает немного.
У нас 900+ тестов, 25 тел (12 iOS + 13 Андроид). По ночам бегают около 700 (1400 на две платформы) при релизах все. У нас много долгих тестов (например 2 платежа в тесте с заполнением кучи полей). Вообщем вполне сносно все 1800 (900 на обе платформы) бегут за 3.5 часа Андроид и немного дольше iOS.
C фермами типа browserstack заморачиваться не стали (наша ферма окупается за 3 месяца если выбирать планы с 20+ параллельными тел против самой дешевой фермы).
По поводу автоматизации, а тесты ios как запускаете, учитывая что для запуска ios приложения нужно устройство Apple? Руками или используете какое-то автоматическое решение?
https://github.com/openstf/stf опенсорс решение для Android(с возможностью работы через Web интерфейс для ручного тестирования), на iOS руками подключили и настроили ферму на Mac OS хосте.
интересно, а в чем у вас состояла " настроили ферму на Mac OS хосте " ?
мы просто подключили хаб на 20 портов к макМини.
Закупки Mac Mini, провести начальную настройку окружения, поставить в ЦОД рядом с другим железом, поставит агента CI, раздать права пользователям ну и через хаб телефоны подключить.
Ничего технически сложного нет(если не считать бюрократию в крупных компаниях), все шаги выше отнёс к "настроить ферму"
Легкая автоматизация кроссплатформенных тестов с Kotlin DSL