Звати Паша, роблю відео для каналу qa семпай
про автоматизацію: https://www.youtube.com/@qa_senpai
секретний чатік: https://base.monobank.ua/Cjh2Sfav8314TE#subscriptions
дірект: @qa_senpai_dojo
Post #44
528
Подивився деякі доповоді з рос конференції для тестувальників.
Доповіді не дуже цікаві, але для себе декілька ідей для наступних відео взяв.
Ось коротке самарі доповіді:
особливість їх роботи полягає в тому, що вони регулярно проводять А/Б тестування деяких сторінок.
Що призводить до регулярної їх зміни.
Вони ділять ці зміни на три категорії складності:
1️⃣ незначні зміни в DOM моделі сторінки
2️⃣ додавання/прибирання елемента на сторінці
3️⃣ зміна сторінки повністю
Як вони пропонують боротись з першими двома рівнями складності?
1️⃣ В першому випадку вони просто додають в їх selector умови по типу OR (//*[@title='Annotate' or text()='Annotate'])
2️⃣ якщо елементи змінюються, вони використовують в свої тестах if else
3️⃣ як вони працюють з різними сторінками?
Якщо коротко, вони просто перевіряють наявність специфічного для сторінки елемента, і в залежності від цього повертають правильний PageObject. Для цього використовують фабричний метод.
Фабричний метод — це породжувальний патерн проектування, який визначає загальний інтерфейс для створення об’єктів у суперкласі, дозволяючи підкласам змінювати тип створюваних об’єктів.
➡️➡️➡️
Якщо вам цікаві огляди доповідей конференцій проголосуйте
👍 - якщо робити такі огляди
👎🏻 - якщо не треба.
пишіть коментар - якщо треба, але англомовних
Доповіді не дуже цікаві, але для себе декілька ідей для наступних відео взяв.
Ось коротке самарі доповіді:
особливість їх роботи полягає в тому, що вони регулярно проводять А/Б тестування деяких сторінок.
Що призводить до регулярної їх зміни.
Вони ділять ці зміни на три категорії складності:
1️⃣ незначні зміни в DOM моделі сторінки
2️⃣ додавання/прибирання елемента на сторінці
3️⃣ зміна сторінки повністю
Як вони пропонують боротись з першими двома рівнями складності?
1️⃣ В першому випадку вони просто додають в їх selector умови по типу OR (//*[@title='Annotate' or text()='Annotate'])
2️⃣ якщо елементи змінюються, вони використовують в свої тестах if else
public SetConfirmation CodePagePromise click ContinueButton() {
}
if (baseFunc.explicitWait (ExpectedConditions.invisibilityOfElementLocated (CONTINUE_BUTTON)).isSuccess()) { LOGGER.info(message: "Трапився автосабмит кода", bаse Func. takeScreenshot());
} else {
}
LOGGER.info(message: "Натискаємо кнопку 'Далі'", base Func. takeScreenshot());
baseFunc.click(CONTINUE_BUTTON);
return new SetConfirmationCodePagePromise(baseFunc);
особисто я вважаю використання if else не дуже вдалим рішенням, але як адаптуватись під зміни без цього... я поки хз. 3️⃣ як вони працюють з різними сторінками?
Якщо коротко, вони просто перевіряють наявність специфічного для сторінки елемента, і в залежності від цього повертають правильний PageObject. Для цього використовують фабричний метод.
Фабричний метод — це породжувальний патерн проектування, який визначає загальний інтерфейс для створення об’єктів у суперкласі, дозволяючи підкласам змінювати тип створюваних об’єктів.
public static boolean isPopupLogin() {
return $(SHOW_PASSWORD_BUTTON).isDisplayed();
}
public static boolean isNewAnonymPage() {
return $(OK_LOGO).isDisplayed();
}
public static LoginPage get (Base Func baseFunc) { if (isPopupLogin (base Func)) {
return new Login Popup (base Func);
}
else if (isNewAnonymPage (base Func)) { return new NewAnonymLoginPage (baseFunc); }
else {return new OldLoginPage (base Func)
; }
він там щє розповідав як вони створюють тестових юзерів (ботів), але то таке... дуже специфічна тема для кожного окремого проекту метод буде свій. ➡️➡️➡️
Якщо вам цікаві огляди доповідей конференцій проголосуйте
👍 - якщо робити такі огляди
👎🏻 - якщо не треба.
пишіть коментар - якщо треба, але англомовних
- 👍 13
- ❤ 1
- 👎 1









