Огляд тестової студії
Telerik Test Studio - це рішення для автоматизованого функціонального тестування для автоматизації регресійного, функціонального, навантажувального та API тестування. На відміну від деяких інших рішень для тестування, які нав’язують власну мову, Telerik Test Studio використовує мову C# або VB.Net. Використання реальної мови кодування означає, що легше знайти підтримку онлайн. Тестовими скриптами також можна ділитися з командою за допомогою контролю вихідного коду. Telerik - це інструмент на основі іконок, який автоматизує функціональне або регресійне тестування будь-якого веб- або десктопного додатку. Навіть тестувальник з низьким рівнем знань з програмування або взагалі без них може використовувати Telerik. Його можна використовувати як для запису та відтворення, так і для написання описових сценаріїв, що є найбільш важливим з точки зору командної співпраці. Тестувальники можуть або писати скрипти, або просто використовувати широкі можливості запису та відтворення, які пропонує Telerik.
Переваги Telerik Test Studio:
- Він використовує активний екран для запису, що означає, що тестувальник може звертатися до екрану під час запису скриптів. - Telerik використовує DOM-структуру веб-сторінки для ідентифікації властивостей об’єктів. - Telerik Test Studio також здатна взаємодіяти з будь-якою файловою системою контролю вихідних кодів і інтегрується безпосередньо з Team Foundation Server (TFS) і Git. - Обслуговування тестових скриптів досить просте, і будь-які зміни в скриптах можуть бути легко внесені. - Широкі звіти. - Інтеграція з Visual Studio. - Віддалене виконання та планування тестів.
Недоліки Telerik Test Studio:
- Він поставляється з ліцензійною вартістю. Дивіться: Ціни на Telerik Test Studio. - Онлайн-підтримка доступна при поновленні ліцензії. - Використання відносних властивостей об’єктів може бути складним. - Потрібно налаштувати надбудову для управління джерелами. Як безкоштовну альтернативу Telerik Test Studio можна використовувати Telerik Test Framework. Цей фреймворк використовується Test Studio для внутрішніх потреб і дозволяє створювати автоматизовані тести лише у вигляді коду, отже, потрібно мати навички програмування. У цьому підручнику ми зосередимося лише на можливостях, які надає Telerik Test Studio.
Покрокова інструкція по налаштуванню
Крок перший. Перейдіть на сторінку Progress Telerik Test Studio і натисніть кнопку “Завантажити пробну версію”.

Крок другий. Ви будете перенаправлені на сторінку завантаження, і завантаження почнеться автоматично.

Після завершення інсталяції виконайте кроки, описані на сторінці завантаження:

Щоб встановити Test Studio на ваш комп’ютер, вам буде запропоновано надати інформацію про ваш обліковий запис Telerik. Якщо у вас немає облікового запису, ви можете зареєструватися в інсталяторі.
Тепер, коли ви встановили Telerik Test Studio, ми можемо розпочати наш перший тест.
Тестовий запис
Крок перший. Відкрийте Telerik Test Studio. Вас привітає вікно “Майстер активації”, яке показує, скільки днів залишилося до закінчення терміну дії пробної версії. Натисніть кнопку “Почати пробну версію” (або “Продовжити пробну версію”, якщо ви вже відкривали Test Studio раніше).

Крок другий. Натисніть “Створити проект” в лівому бічному меню, а потім виберіть опцію “Web & Desktop”

Крок 3. Вкажіть назву проекту та місцезнаходження і натисніть кнопку “Створити”.

Ви повинні побачити це вікно:

Тепер у нас є порожній проект. Давайте додамо до нього кілька тестів.
Крок четвертий. Клацніть правою кнопкою миші на елементі проекту в лівому бічному меню і виберіть “Додати новий тест” у випадаючому меню.

Крок п’ятий. У вікні, що з’явилося, виберіть опцію “Web Test” і введіть “GoogleQueryTest” як назву тесту, після чого натисніть “Створити”.

Ви повинні побачити новостворений тест у вашому проекті:

Крок шостий. Двічі клацніть “GoogleQueryTest”. Ви можете побачити, що тест складається з елементів, які називаються “Кроки тесту”. По суті, це команди, які взаємодіють зі сторінкою і виконують необхідні дії для виконання тесту. Також такими кроками можуть бути якісь логічні умови (оператори if…else, цикл while), затримки виконання або навіть команди для виконання іншого тесту. Ви можете додати їх вручну, але зараз ми зосередимося на автоматизованому записі тестів.

Крок сьомий. Натисніть кнопку “Записати”

Крок 8. У вікні “Запис” введіть URL-адресу: https://www.google.com і клацніть у браузері, в якому ви бажаєте зробити запис. Потім натисніть кнопку “Запис”.

ПРИМІТКА: якщо ви вибрали “Google Chrome” як бажаний браузер, Test Studio закриє поточні запущені екземпляри Chrome і запитає вас, чи згодні ви з цим. Після цього вам потрібно буде встановити додаткові розширення для Chrome. У цьому вам допоможе сторінка браузера з ініціалізатором диктофона. Ви можете встановити їх вручну, дотримуючись цієї документації Test Studio перед початком запису.
Після того, як ви встановите всі необхідні розширення, вас буде перенаправлено на запитувану URL-адресу, і ви побачите ось це:

Внизу ви побачите вікно записувача та його опції. Ми розглянемо їх пізніше, а поки що просто введіть “Telerik Test Studio” в поле пошуку, натисніть “Enter” і після того, як завантажиться сторінка з результатами, закрийте браузер, щоб зупинити запис.
Крок дев’ятий. Тепер поверніться до Test Studio. Ви бачите, що реєстратор додав до нашого тесту тестові кроки.

Крім того, в лівому нижньому кутку є автоматично згенеровані елементи для сторінки google.com. Вони генеруються Test Studio за шаблоном Page Object, що дозволяє повторно використовувати елементи сторінки в різних тестах.

Давайте запустимо наш тест прямо зараз. Натисніть кнопку “Виконати”.

У вікні “Виконання” виберіть потрібний браузер і натисніть “Запустити”.

Як бачите, наш скрипт переходить на вказану сторінку і вводить потрібний запит, але не шукає його, а майже миттєво закриває вікно браузера. Якщо ми уважно подивимось на кроки тестування нашого скрипту, то побачимо, що наші кроки роблять саме це. Це означає, що реєстратор не працював належним чином і пропустив кілька кроків. Тому давайте модифікуємо наш скрипт і додамо деякі твердження.
Крок 10. Клацніть правою кнопкою миші на нашому тесті та виберіть “Записати”. Виберіть браузер для запису.

Крок одинадцятий. Що стосується редагування сценарію та додаткового запису, то в залежності від ситуації, які саме кроки потрібно змінити, залежить від конкретної ситуації. Для цього скрипта дотримуйтесь наступного робочого процесу:
перейдіть на www.google.com;
натисніть на поле введення запиту;
введіть “Telerik Test Studio”;
натисніть клавішу “ESC”, сфокусувавши поле введення;
натисніть кнопку “Google Search”;
залиште вікно браузера відкритим для подальшого використання.
Крок дванадцятий. Поверніться до Test Studio. У вашому тесті ви повинні побачити це:

Як бачимо, новий сеанс запису додав кроки тесту в кінець цього тесту. Крім того, є кроки, що дублюються, тобто “перейти до”/”ввести текст”. З ними ми розберемося пізніше.
Крок тринадцятий. Додамо кілька тверджень, щоб переконатися, що завантажилася правильна сторінка пошуку. Поверніться до браузера з диктофоном. У браузері на панелі “Перевірки” натисніть “Вміст”.

Тут, у полі “Content”, виберіть “InnerMarkup” як поле, яке ми перевіряємо, потім функцію “Contains” (або “Exact”, якщо вона вам підходить) як логічне правило для перевірки і введіть значення, яке ми очікуємо. Давайте зробимо простіше і введемо “Telerik Test Studio”. Це означає, що тест пройде успішно, тільки якщо вихідний код сторінки містить таку послідовність. Так і має бути, оскільки ця послідовність є посиланням на тег сторінки.
Пізніше ми перенесемо це твердження на так званий кодований крок, але поки що ми будемо дотримуватися цього.

Нарешті, натисніть “Додати крок” і закрийте вікно браузера.
Крок 14. Повернувшись до тестової студії, подивіться на наші кроки тестування. Ви повинні побачити щось подібне:

Тепер нам потрібно змінити наші кроки тестування, щоб зробити наш тест більш надійним. За замовчуванням Test Studio не імітує реальний набір тексту або кліки при виконанні скриптів. Це означає, що вона не буде запускати скрипти, які очікують на сторінці введення або натискання. Іноді це може бути проблемою. Отже:
Натисніть першу команду “Введіть текст”.
На панелі “Властивості” переконайтеся, що ви встановили прапорець “Імітувати реальний набір тексту”.

По-друге, важливо відзначити, що наша дія “Перевірити” виконується миттєво, ще до того, як завантажиться сторінка з реальними результатами. Таким чином, вона не спрацює, оскільки ми перевіряємо, чи існує десь на поточній сторінці послідовність рядків “Telerik Test Studio”, а на момент виконання кроку “Verify” такої послідовності ще не існує. Для спрощення ми поставимо так звану затримку виконання перед дією “Перевірити”, що дозволить завантажити сторінку з результатами. Це погана практика з багатьох причин, і ми замінимо її на правильну роботу пізніше. А поки що погляньте на “Конструктор кроків”.

Тут ми хочемо вибрати пункт “Загальний”, а потім “Затримка виконання”. Після цього натискаємо кнопку “Додати крок”, і ось результат.

Встановіть затримку виконання 2000 мс. Цього зазвичай достатньо для того, щоб сторінка оновила своє джерело.
Крок п’ятнадцятий. Позбудемося кроків, що дублюються. Якщо ви впевнені, що без певного кроку нічого не станеться, ви можете виключити його з порядку виконання, знявши галочку біля нього. Коли ви впевнені, що без виключених кроків все буде добре, ви можете їх видалити.
Вилучіть кроки 3 і 4 з порядку виконання. Потім збережіть тест (Ctrl+S), натисніть кнопку “Виконати”, виберіть потрібний браузер і запустіть тест на виконання.


Тепер наш тест успішно запущено!

Крок 16. Тепер видаліть невикористані кроки, що повторюються. Виділіть їх (утримуючи клавішу Ctrl під час клацання) і натисніть “Видалити”. Збережіть зміни. На цьому все. Тепер у вас є ваш перший тест. У наступному розділі ми розглянемо способи покращення нашого тесту та загальні хороші практики.
Розширені можливості
Зараз у нас є перший тест, і він має бути подібним до цього.

Подивіться на нашу панель “Елементи”.

Хоча назви можуть бути різними, вони в будь-якому випадку не є описовими. Давайте перейменуємо їх, щоб зробити більш зрозумілими та позбудемося невикористовуваних.
Крок 1. Клацніть правою кнопкою миші елемент, який ви хочете змінити, і натисніть “Перейменувати”. Дайте елементам більш змістовні назви, наприклад, “QueryInput”, “SearchButton” і “ResultsPageSource”. У вас повинно вийти ось так:

І ваші кроки тестування повинні бути оновлені відповідно:

Крок другий. Перевірте кроки тесту. Якщо ви уважно подивитеся, на 2-му кроці для введення тексту використовується інший елемент, ніж той, що ми використовуємо для натискання клавіші “Esc”. Це тому, що ми записали цей скрипт у два запуски і програма створила два об’єкти сторінки для тієї самої сторінки з тими самими елементами. Щоб перевірити це, виберіть елементи “LstlbText” і “QueryInput” на панелі “Елементи” і порівняйте їхні поля “Логіка пошуку”:


Як бачите, ці два елементи ідентичні, і нам не потрібні обидва.
2.1. Давайте видалимо “LstlbText”. Перш ніж це зробити, клацніть наш 2-й крок тесту (той, де ми використовуємо “LstlbText”) і відкрийте панель “Властивості”.

2.2. Перейдіть до опції “PrimaryTarget” і натисніть кнопку “…”.
2.3. У розділі “Select Html Element” виберіть “QueryInput” і натисніть кнопку “Select”.

Крок 3. Клацніть правою кнопкою миші елемент “LstlbText” на панелі “Елементи” і натисніть “Видалити”. Оскільки ми не використовуємо цей елемент ніде, окрім раніше зміненого кроку, підтвердіть видалення.

Крок четвертий. Перейменування об’єктів сторінки. Просто клацніть правою кнопкою миші на потрібному об’єкті сторінки і виберіть опцію “Перейменувати”. Дайте об’єктам сторінки якусь змістовну назву (наприклад, “GoogleSearchPage” і “ResultsPage”). Тепер у вас повинно вийти наступне:

Це вже виглядає набагато чистіше і читабельніше, але давайте продовжимо вдосконалення.
Якщо ми подивимося на наш тест, то побачимо, що наш робочий процес є таким:
перейти на сторінку
введіть пошуковий запит;
виконати пошуковий запит;
перевірити результати.
Це добре, але що, якщо ми вже знаходимося на потрібній сторінці на початку цього тесту через попередні запуски? Що, якщо нам потрібно перевірити результати пошуку, отримані з якоїсь іншої пошукової форми? Ось чому нам потрібно відокремити незалежні дії і перенести їх в окремі тести.
Крок перший. У проекті створіть нову папку і назвіть її “Steps”. Для цього клацніть правою кнопкою миші на елементі проекту в провіднику і виберіть опцію “Створити папку”. У цій папці ми розмістимо наші незалежні дії, які можна використовувати спільно між тестами.

Крок другий. У відкритому тесті клацніть правою кнопкою миші наш перший крок і виберіть опцію “Створити тест як крок”.

Крок 3. Введіть назву нового тесту і натисніть “Створити”

Тепер наш “GoogleQueryTest” виглядає так:

Крок четвертий. Виберіть кроки 2, 3 і 4 і перемістіть їх в інший тест під назвою “Введення і відправка пошукового запиту”. Тепер наш “GoogleQueryTest” має такий вигляд:

Крок 5. Виберіть кроки 3 і 4 і перенесіть їх в інший тест під назвою “Перевірка результатів пошуку”, використовуючи техніку, описану вище. Тепер наш “GoogleQueryTest” має такий вигляд:

Крок шостий. Перенесіть створені тести до папки “Кроки” перетягуванням:

Крок сьомий. Створіть папку “Tests” і перемістіть туди файл “GoogleQueryTest”:

Таким чином, ми зробили наш проект набагато більш організованим, ніж раніше. Продовжимо вдосконалення тестів. Відкрийте тест “Введення та відправка пошукового запиту”.

Наразі ми вводимо наш пошуковий запит, потім натискаємо клавішу “Esc” на клавіатурі і, нарешті, натискаємо кнопку “Пошук Google”. Це чудовий робочий процес для, скажімо, тестування кнопки “Пошук Google”. Але імітація реального набору тексту забирає багато часу, так само як і виконання кількох інших кроків. Я пропоную вам зберегти копію цього тесту в поточному стані і назвати його “Введення і пошук по кліку”. Після цього ми зможемо вдосконалити наш оригінальний тест.
Крок перший. Перейменуйте початковий тест на “Введення та пошук за допомогою клавіші Enter”, щоб відповідати його логіці.

Крок другий. Зніміть прапорець “SimulateRealTyping” для першої команди в тесті “Введення та пошук за допомогою клавіші Enter”. Так ми заощадимо трохи часу.
Крок 3. Відкрийте властивості для 2-го кроку і для поля “Ключ” вкажіть “Enter”:

Таким чином, ми миттєво надішлемо наш запит, не натискаючи кнопку “Пошук Google”.
Крок четвертий. Оскільки останній крок нам більше не потрібен, ми можемо його видалити. Але я раджу спочатку видалити його з порядку виконання, а потім перезапустити ваш тестовий скрипт, щоб переконатися, що все в порядку. Після цього ви можете видалити невикористані кроки. Тепер наші тести стали кращими і надійнішими. Давайте продовжимо з тестом “Перевірка результатів пошуку”.

Як бачите, тут ми затримуємо виконання тесту на 2000 мс і після цього намагаємося перевірити, чи містить сторінка з результатами певний рядок у своїй розмітці. Давайте розглянемо це крок за кроком.
Крок перший. З багатьох причин затримка виконання, яку ми зараз використовуємо, є поганою практикою. В основному через те, що ви не можете гарантувати, що бажана сторінка або елемент буде завантажена в зазначений час. Або навіть якщо вони будуть завантажені, ваш скрипт може чекати довше, ніж вам потрібно. Ось чому нам потрібно використовувати кроки WaitFor.
Хоча ви можете додати крок WaitFor при виділенні елементів в режимі запису (просто наведіть курсор на елемент і дочекайтеся появи контекстного меню), я хотів би показати вам, як це робиться в Coded Step. Але спочатку нам потрібно зрозуміти, чого ми чекаємо. Наразі ми чекаємо на тег, який має містити деяке значення. Це не тільки неправильно, але й робить наші тести вразливими. Отже, нам потрібно дочекатися, поки якийсь контейнер вмісту на сторінці результатів стане видимим, і після цього в кодованому кроці ми перевіримо, що заголовок сторінки відповідає тому, на який ми очікуємо.
1.1. Відкритий тест “Перевірка результатів пошуку”.
1.2. На панелі “Елементи” клацніть правою кнопкою миші на “ResultsPage” і виберіть опцію “Завантажити сторінку”. Виберіть потрібний браузер і натисніть “Записати”.
1.3. У вікні запису натисніть “Виділити елементи” і наведіть курсор на потрібний вам контейнер. Я рекомендую наводити курсор на параметри фільтрації результатів, оскільки ця смужка не відображається на сторінці пошуку.

1.4. Дочекайтеся появи контекстного меню. Після цього виберіть пункт “Додати до елементів…” і у спливаючому вікні введіть описову назву цього елемента (наприклад, “ResultsFilterMenu”) та натисніть “Додати елемент”.
1.5. Ви можете побачити нову сторінку, що з’явилася на панелі “Елементи”. Це дублікат сторінки “ResultsPage”. Щоб об’єднати їх, клацніть дублікат об’єкта “Page Object” і встановіть “CompareMode” на “FullPath”.
Крок другий. У скрипті “Перевірка результатів пошуку” в “Конструкторі кроків” у групі “Загальні” виберіть “Кодовий крок” і натисніть “Додати крок”. Виберіть зручну для вас мову (я обираю C#) і натисніть “Створити”.
Крок 3. У відкритому редакторі ви побачите створену нову кодовану ступінчасту функцію. Замініть її на наступну:
[CodedStep(@ wait=”” for page to load and assert”)]
public void Verify_search_results_CodedStep()
{
Pages.ResultsPage.ResultsFilterMenu.Wait.ForVisible(10);
Assert.Equals(ActiveBrowser.PageTitle.ToString(), “Telerik Test Studio - Google Search”);
}
Цей код звернеться до об’єкта Pages цього проекту (який зберігає інформацію про всі сторінки, які ми створили), а потім витягне з нього елемент ResultsPage, а потім ResultsFilterMenu. Після цього ми почекаємо, поки цей елемент стане видимим до 10 секунд. Якщо меню з’явиться раніше, ми виконаємо цю операцію швидше.
Другий рядок використовується для перевірки того, що заголовок активного вікна браузера дорівнює “Telerik Test Studio - Google Search”. У наступному розділі ми замінимо його на дані із зовнішнього джерела даних, а поки що залишимо його як є.
Крок четвертий. Збережіть цей закодований крок і виключіть кроки 1 і 2 з порядку виконання. Крок 5. Відкрийте “GoogleSearchTest” і запустіть його у вибраному вами браузері.
Якщо ви точно дотримувалися моїх вказівок, ваш тестовий скрипт повинен виконуватися без збоїв і набагато швидше, ніж раніше. Це означає, що ви можете видалити всі невикористовувані кроки у ваших скриптах. Тепер, коли ви ознайомилися з деякими розширеними функціями, ми можемо перейти до тестування на основі даних (Data Driven Testing, DDT).
Тестування на основі даних
Використання зовнішніх джерел даних у ваших скриптах, як правило, є гарною практикою, оскільки вам не потрібно вказувати будь-які дані безпосередньо у ваших скриптах, а лише використовувати імена змінних з вашого джерела даних. У цьому посібнику ми будемо використовувати дані з .csv-файлу, але ви можете використовувати й інші джерела, детально описані в офіційній документації.
Крок перший. Створіть файл “data.csv” у папці вашого проекту.
Крок другий. Відкрийте файл у будь-якому текстовому редакторі та заповніть його таким чином (без пробілів!):

Крок 3. У Test Studio виберіть свій проект.

Крок четвертий. У групі “Джерела даних” натисніть кнопку “Додати” і виберіть опцію “Файл CSV”.

Крок п’ятий. Перейдіть до вашого файлу data.csv і виберіть його:

Крок шостий. Натисніть “Створити”. Тепер, якщо ви натиснете кнопку “Керування” в групі “Джерела даних”, ви побачите ваш файл data.csv в папці “Дані” проекту.
Крок сьомий. Натисніть тест “Перевірити результати пошуку”.
Крок 8. У групі “Джерела даних” натисніть кнопку “Прив’язати тест”.

Крок дев’ятий. Виберіть data.csv у випадаючому списку “Виберіть джерело даних”.

Крок 10. Відкрийте свій закодований крок і змініть його вміст:
[CodedStep(@ wait=”” for page to load and assert”)]
public void Verify_search_results_CodedStep()
{
об’єкт title = Data[“PageTitle”];
Pages.ResultsPage.ResultsFilterMenu.Wait.ForVisible(10);
Assert.Equals(ActiveBrowser.PageTitle.ToString(), title.ToString());
} Тепер ми прив’язали наш закодований крок до джерела даних і можемо бути більш незалежними в тому, що ми перевіряємо. Крок 11. Виконайте скрипт для перевірки результатів.
Подібним чином ви можете прив’язати дані не тільки до закодованих кроків. Для цього прив’яжіть джерело даних до потрібного тесту, виберіть потрібний крок тесту і змініть його властивість “Прив’язки”:

Висновок
Після цього посібника для початківців ви повинні мати базові знання про Telerik Test Studio, запис і редагування тестів, а також про деякі додаткові можливості програми. Я пропоную вам продовжити читання офіційної документації, щоб відкрити для себе більше можливостей, таких як редагування логіки пошуку елементів або розширене покрокове кодування.










0 коментарів