Пам'ятаєте фільм "День бабака"? Там головний герой переживав один день постійно, змінювався лише він, а ось все навколо залишалося незмінним. Така ж ситуація іноді складається при розробці / супроводі сайту: одна і та ж функція то працює, то ні.
Для перевірки доводиться виконувати купу однотипних дій з разу в раз. А якщо тестується велика форма з кількома десятками полів, то тимчасові витрати стають відчутними.
За науці все вирішується написанням автоматичних тестів. Але є безліч ситуацій, коли це недоцільно. Наприклад, потрібен всього 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/ ) Кваліфікованим програмістам.
Оцініть статтю:
Пам'ятаєте фільм "День бабака"?Що ж у підсумку?