Как стать автором
Обновить

Комментарии 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, раздать права пользователям ну и через хаб телефоны подключить.

Ничего технически сложного нет(если не считать бюрократию в крупных компаниях), все шаги выше отнёс к "настроить ферму"

Зарегистрируйтесь на Хабре, чтобы оставить комментарий