Статьи

Тест бабака. Тестуємо сайт за допомогою Selenium IDE.

Пам'ятаєте фільм День бабака

Пам'ятаєте фільм "День бабака"? Там головний герой переживав один день постійно, змінювався лише він, а ось все навколо залишалося незмінним. Така ж ситуація іноді складається при розробці / супроводі сайту: одна і та ж функція то працює, то ні.

Для перевірки доводиться виконувати купу однотипних дій з разу в раз. А якщо тестується велика форма з кількома десятками полів, то тимчасові витрати стають відчутними.

За науці все вирішується написанням автоматичних тестів. Але є безліч ситуацій, коли це недоцільно. Наприклад, потрібен всього 1 тест, і через нього не хочеться відривати програміста від важливішої роботи.

У цій статті ми розповімо про рішення такого завдання силами менеджера / маркетолога.

Взагалі тестування (якщо заглянути в довідник) це перевірка відповідності сайту заявленим характеристикам і вимогам. Тестування буває різним:

  • Функціональне тестування - перевіряє відповідність реалізованих функцій вимогам;
  • Конфігураційне тестування - дозволяє перевірити, як додаток поводиться при різних дозволах екрану, в різних браузерах, на різних ОС і з різним програмним і апаратним забезпеченням;
  • Тестування безпеки - дозволяє переконатися, що дані зберігаються надійно, доступ до них блокований для сторонніх осіб;
  • Тестування навантаження - дозволяє виявити рівень критичних навантажень при роботі з ресурсами;
  • Тестування usability - перевіряється зручність користування продуктом.

Сьогодні ми поговоримо про функціональне тестування. Як видно з визначення, суть його в тому, щоб коли виконуються будь-які дії, їх результат збігається з передбаченим. Таке тестування можна проводити як в ручну, так і в автоматичному чи напівавтоматичному режимі.

Але будь-яка людина, повторюючи що-небудь рутинне, намагається це по можливості автоматизувати, тому варіант ручного тестування ми розглядати не будемо. Нас цікавить автоматизоване, і сьогодні ми розглянемо одного представника такої автоматизації, а саме, Selenium IDE, і перевіримо, як з його допомогою проводити тестування.

Selenium IDE це розширення для браузера Mozilla FireFox, тому установка досить проста. Після встановлення розширення в панелі з'явиться додатковий значок.

Тепер можна відкрити віконце Selenium IDE і подивитися, на що він здатний.

Віконце складається з декількох секцій. Сама верхня це рядок базового адреси, в яку ми відразу впишемо адресу сайту, з яким будемо працювати. Під нею розташована панель запуску тестів або тесту, в якій так само вказується швидкість виконання кроків тесту. Регулювання швидкості знадобиться, якщо сторінки сайту вантажаться повільно, або ж кроки тесту вимагають якихось обчислень або запитів на сторінці. Зліва розташований список поточних тестів, а справа знаходиться редактор. Замикає це все секція логів.

Тепер докладніше розглянемо як створити і запустити тест. Тест складається з декількох кроків, кожен крок це одна з можливих команд. Тест вважається успішним, якщо всі кроки виконалися успішно. При невиконанні кроку тест зупиняється і вважається не пройденим, в тому числі, якщо перевищено очікування (тут варто нагадати про регулюванню швидкості).

Selenium IDE вміє сам записувати дії користувача і перетворювати в команди. Для цього необхідно лише включити відповідний режим в меню.

Тепер, коли включений режим запису, можна виконувати будь-які дії, і вони будуть транслюватися в команди. Наприклад, перейдемо на сторінку каталогу, заповнимо пару значень фільтра і застосуємо його. Після цього вікно команд буде виглядати так:

Хотілося б сказати: "Вітаємо, ось і ваш перший тест", але немає. Як завжди є підступ. Якщо ми спробуємо зараз запустити тест, то побачимо наступну картину:

Справа в тому, що в Selenium IDE є деякі проблеми при роботі з селекторами, визначальними шлях до елемента на сторінці, і вирішуються вони, як правило, переписуванням селектора. Ось і в даному випадку так вийшло, що на сайті, який ми використовуємо для тестування, деякі ідентифікатори не постійні для сторінки і можуть відрізнятися. А Selenium IDE використовує ідентифікатор якщо він є, що призводить до того, що при запуску тесту ідентифікатора може вже й не бути. Тому перепишемо селектор без використання ідентифікатора. Для цього достатньо натиснути на цікаву для нас команду і її дані відобразяться в полях під списком команд:

Праворуч від поля "Target" є кілька кнопок, за допомогою кнопки "Select" можна активувати автоматичний режим визначення шляху. У режимі автоматичного пошуку, якщо натиснути на який-небудь елемент на сторінці в поле "Target" відобразиться шлях до нього. А кнопка "Find" підсвітить елемент на сторінці, до якого веде шлях в поле "Target". Але так як автоматичний шлях нам не підходить, то підкоригуємо наявний шлях руками. І ось тепер: "Вітаємо, ось і ваш перший тест".

Це все звичайно добре, але давайте тепер напишемо щось більш корисне зі здоровим глуздом і перевірками. Наприклад, при роботі з 1С-Бітрікс часто зустрічається завдання "скинути кеш". Так давайте напишемо тест, який буде цим займатися. Для цього потрібно авторизуватися як адміністратор, перейти на сторінку кеша і запустити скидання.

Тут варто звернути увагу на те, що в якості початкового адреси ми відкриваємо сторінку з параметрами скидальними авторизацію на випадок, якщо до цього хто або вже був авторизований. А тепер як це працює: <video> </ video>

Як приклад оформимо замовлення і перевіримо, що оформлення пройшло успішно.

Як приклад оформимо замовлення і перевіримо, що оформлення пройшло успішно

Тепер немає необхідності виконувати одні і ті ж дії по кілька разів, досить запустити тест. У Selenium IDE є можливість запускати як тести окремо, так і пакети тестів, що дозволяє писати цілі групи тестів і періодично їх запускати для перевірки працездатності проекту, а це, в свою чергу, дозволяє вчасно дізнатися, де що-небудь відвалилося в процесі оновлення або доопрацювання.

Що ж у підсумку? В результаті у нас є неоднозначний інструмент.

З одного боку, він вміє записувати і повторювати дії виконуються користувачем. У ряді випадків це може дуже сильно заощадити ваш час. Наприклад, якщо для вас критична працездатність якийсь простий функції на сайті.

З іншого боку, через технічні особливості верстки цей інструмент може працювати некоректно і потрібно "напилок".

На нашу думку, спробувати цей інструмент без сумніву варто. Потенційних плюсів у нього багато. Якщо сценарії тестування складні або тестувати потрібно навіть ночами - варто замовити написання подібних тестів ( www.intervolga.ru/support/monitoring/ ) Кваліфікованим програмістам.

Оцініть статтю:

Пам'ятаєте фільм "День бабака"?
Що ж у підсумку?

Новости