Селеніум. Зрозуміти та полюбити:)
Як сказав колись наш гуру Олексій Ніколаєв: «Справжній тестувальник не довіряє нікому, і тому любить особисто перевіряти все, до чого може дістатись. Наполегливість, цікавість і уважність – ось його «коник». І це правда:) Рік тому в бунтарських душах наших хлопців-автоматизаторів зародилося бажання попрацювати з платформою для тестування веб-додатків Selenium. Вони вивчали платформу самі, методом спроб і помилок. Треба сказати, у наших це вийшло досить успішно і вже дало свої плоди. Компанія оцінила старання хлопців та результати, які принесли ці старання, давши хлопцям можливість продовжувати розвиватись у вибраному напрямку та заохочивши команду поїздкою на конференцію «SeleniumCamp». Діти вирушили на конференцію за свіжими ідеями для покращення наших методів роботи. Вони повернулися натхненими та вже встигли поділитися своїми знаннями з жителями Компанії.
Ми вирішили дізнатися у хлопців все від початку – як вони познайомилися з цією платформою, як працювали, і, звичайно, як там тренінг?
І ось що розповів на Саша – тим лід одного з напрямків Automation (tx-fx).
Як у нашому житті з’явився Selenium
«Спочатку було слово», як кажуть. Це слово народилося разом із появою в Ніксах нашого нинішнього тимліда Діми, котрий з другого дня роботи вимовляв як заклинання слово «Селеніум». Ми не зовсім розуміли як це може нам допомогти, але вірили, що це дуже крута штука. Діма навіть провів кілька внутрішніх тренінгів з SeleniumRC, стало зрозуміліше, але не вистачало практики, щоб усвідомити всю «глибину селеніумських глибин». Час минав і ми поступово виросли в окрему команду автоматизаторів. Ми, як і раніше, використовували технології, які нам диктували замовники, і продовжували героїчно боротися з усіма проблемами, пов’язаними з цими технологіями. Було як в анектдоті: “Мишки плакали і кололися, але продовжували жерти кактус”. У якийсь момент нам вдалося отримати (вірніше Дімі вдалося пробити/протягнути/проломити :)) у замовника дозвіл на тестування однієї з наших програм за допомогою Селеніума. (До речі, якщо двома словами: Селеніум – це технологія для тестування веб-додатків – сторінок браузера, елементів на сторінці.) аше щастя було безмежно. Ми нарешті позбулися старих проблем і прискорили розробку тестів, скоротили час на їх прогін.
Камінці спотикання
Але разом з цим ми отримали нові проблеми =), десь через брак досвіду практичного використання Selenium, десь через специфіку самого додатка. Але найважливішим було те, що будь-яка нестабільність тестів кидала тінь на Selenium як на технологію, і на нас як на спеціалістів. Настав період «доведення» що Seleinum все-таки краще. Нам вдалося багато досягти, ми досягли стабільності тестів, простоти написання тест кейсів. І в той же час розуміли, що нам дуже потрібні свіжі ідеї, нам потрібно дізнатися, чого досягли інші команди в цій галузі. І в цей момент – бінго! – Діма запропонував нам з’їздити на конференцію “Selenium Camp” до Києва.
День Х
Ми поїхали в Київ компанією хлопців, які постійно використовують платформу Селеніум. На цей момент ми вже використали її на трьох проектах. У перший день були всі разом (і, забігаючи вперед, скажу – найбільший вихлоп був якраз від першого дня) і почули багато речей про можливості цієї платформи, вникали у всі подробиці. Незважаючи на те, що нас головним чином цікавив Selenium WebDriver, ми дізналися дуже багато і про інші пов’язані з ним інструменти для запуску тестів, створення звітності тощо. Ми дізналися, що можливості та сфера застосування селеніуму значно ширші, ніж ми собі уявляли. Особисто для мене було несподіваним так зване побутове використання селеніуму. Наприклад, багатьом з нас, айтішникам, доводилося вчити працювати на комп’ютері людей віку наших батьків або навіть бабусь та дідусів. Це дуже складне завдання. Навіть я сказав би нервова і за неї треба видавати молоко:). Так щоб полегшити запам’ятовування дій, які необхідно виконати, наприклад, щоб потрапити на якийсь конкретний сайт, якусь конкретну сторінку, виконати там якісь конкретні дії, можна елементарно записати ці дії у вигляді SeleniumIDE тесту. В результаті, все, що потрібно зробити – це запустити тест і вуаля – ти в потрібній точці. Та й ще, навіть «зубри», часто створюють собі різні «помогалки». Наприклад, макроси в екселі, різні скрипти. Селеніум теж, виявляється, можна використовувати. І так, у перший день ми з гордістю для себе зрозуміли – те, до чого ми самостійно дійшли в роботі з WebDriver-ом в частині побудови фреймворків – це, виявляється, найпередовіша і найпрогресивніша практика в тестуванні на базі Selenium платформи.
Другий день – це була конференція. Доповідачі виступали паралельно у трьох аудиторіях. Щоб увібрати максимум, ми розподілилися, хто на яку доповідь йде. Цей день порадував нас трохи менше, бо розповідали, за великим рахунком, те саме, що ми вже почули першого дня, тільки розглядалися більш конкретні, окремі випадки. І, до речі, все, чого ми досягли самостійно (несподівано опинившись у першому вагоні), це завдяки Дімону “Selenium God” :) Але ми не зупинялися і продовжували підкріплювати теорією, що вже існує.
Сухий залишок
До конференції ми приймали додаток та будь-які пов’язані з їх тестуванням складності як належне – нам давали «коряву» додаток, ми говорили спасибі та починали тестувати. Нестабільні випробування? – Винен Selenium. Складно прив’язатись до об’єктів чи виконати з ними дії? – Нестача Selenium-а. Так вийшло, що перед конференцією ми зіткнулися з критичною проблемою, яка блокувала виконання тестів. Вручну ця проблема не відтворюється. Замовники вже почали вважати, що це баг Селеніума і думали про те, щоб повернутися на стару платформу. Тепер же, озброївшись новими знаннями, ми маємо більше підстав довести, що проблема не тестовому фреймворку, а в самому додатку. (Примітка: поки верстався номер, з’ясувалося, що це таки баг програми, оскільки цей баг був відтворений вручну. Замовники стали більше довіряти нам і Selenium, а ми стали спати спокійніше :)). Тепер ми знаємо, як повинен працювати правильно написаний додаток, тому буде сміливішим, проситимемо виправляти «корявість» самого додатка, а не вигадувати обхідні шляхи.
Ми дізналися які варіації в організації фреймворку, і тепер можемо оцінити плюси та мінуси нашого поточного фреймворку.
Ну і, мабуть, головне – ми знайшли відповіді на складні технічні питання, які заважали працювати.
А ще нам сподобалося у Києві. Ми чудово провели час і поза тренінгом теж, гуляючи вулицями столиці.
Ділимося досвідом
Повернувшись із тренінгу, за традицією, ми стали нести знання в маси та ділитися ними з усіма, хто цікавиться тестуванням веб-додатків взагалі та Селеніумом зокрема. Кожен з нас вибрав тему, підготував презентацію, докладну доповідь і готовий відповісти на каверзні питання. Дівчатка з ОХО підсолодили це все смачними печивами:) На мій погляд, нам вдалося розкрити всі основні питання по темі і, сподіваюся, тепер багатьом стало цікавіше жити і працювати:)
До речі, ми запитали самих хлопців, які відвідували тренінги, про їх враження:
Женя, тестувальник-початківець:
“В перший день тренінгу йшлося про продукти Selenium IDE та WebDriver. Інформацію про них виклали дуже коротко та інформативно. Вказали всі плюси та мінуси, а також особливості налаштування та встановлення Selenium IDE. Після цього тренінгу я прийшов і налаштував у себе цю софтинку , легко навіть записав свій перший автоматизований тест, який автоматично заповнював потрібні мені поля на сторінці:) Була зрозуміла практично вся інформація викладена в перший день тренінгу, за винятком деяких термінів. мотивували до навчання:).
На другий день була охоплена більш серйозна тема, як створення Framework’a. Тренінг дав мені зрозуміти навіщо взагалі потрібний Framework і наскільки ефективно його використання. Спасибі доповідачам Саші та Наді – розжували теорію складних технічних термінів і виклали доступною всім мовою. Єдине, що я хотів би додати до такого роду тренінгів – це практична частина. Хотілося б як розуміти теорію, а й вчитися застосовувати її практично.
Загалом у роботі я з цією технологією тестування не стикаюся, але я дуже зацікавився, коли про неї почув. Я в ній розібрався і вивчив її собі, свого розвитку, щоб внести щось цікаве і свіженьке в повсякденну роботу. Тож я радий, що встиг зареєструватися на тренінг :):).”
Валера, автоматизатор, досвід роботи – 1 рік:
“Найкласніше в навчанні – це коли цікаво вчитися. Ось на наших Селеніум тренінгах цікаво:) Наші друзі з’їздили до Києва на конференцію, повернулися жах як розумними і діляться мудрістю з усіма бажаючими. І розповідь йде жваво. Виникає багато питань, видно, що слухачі вникають і переймаються.Нехай не завжди на запитання знаходяться відповіді, але потім оповідач тебе наздожене на перерві і все роз’яснить.Я ось пробував Селеніум разок і давно, але мені стало багато зрозуміло після тренінгів. Напрямок для роздумів Тепер якщо раптом зіткнуся з проектом на Селеніумі, швидше увійду в робочий процес. Що ще здорово – дізнався багато нових технологій, знаю про що Google запитувати вечорами.
Антон, тестувальник, досвід роботи – 3.5 роки:
“З цим продуктом по роботі знайомився дуже поверхово, все якось не вистачало часу розібратися докладніше. А зараз, коли виникла потреба у використанні продукту, ці лекції стали дуже доречними. Принаймні мені після прослуханого буде дуже легко почати розбиратися в тонкощах”. Селеніума, коли вже маєш гарне уявлення про продукт в цілому. Імхо потрібно побільше таких ось заходів.
Марина, тестувальник, досвід роботи – 2 роки:
“Коли прийшов лист на пошту про курс лекцій з автоматизації, що намічається, я відразу представила купу прикладів на живому коді, які незнайомій з Selenium людині буде досить важко зрозуміти, а з поганим зором ще й розглянути.
Але ж хлопці молодці! Їм вдалося викласти основні концепції автоматизованого фреймверку, всі плюси, підходи та технології настільки, наскільки це було можливо зробити у відведений час.
Виділити будь-кого з доповідачів дуже важко, тому що всі виступили дуже добре, всі яскраві і кожен по-своєму може привернути увагу слухачів. Саме тому, що вони такі різні, я думаю, успіх у ньому забезпечений (додамо сюди ще працездатність і бажання використати всі best practices, які вони дізналися на київській конференції).
Хочу відзначити ще, що завдяки лекціям я дізналася, що є такі цікаві open source tools, як Cucumber та Thuсydides. Також остання лекція про можливі проблеми тестування за допомогою автоматизованого фреймверку та способи їх вирішення на прикладі компанії Parallels була дуже пізнавальною для тих, хто думає про можливі шляхи автоматизації у своєму проекті.”