Чрез няколко поста ще се опитам да представя основните възможности и недостатъци на Selenium.
Инструментът за провеждане на автоматизирани тестове Selenium има три разновидности – Selenium IDE, Selenium Remote Control и Selenium Core.
Selenium IDE представлява plug-in за Firefox, който позволява записване и повторение на действията на потребителя. Той е за предпочитане за хора които нямат опит с Selenium.
Основните възможности на Selenium IDE са:
- Създаване на нов тест
- Редактиране на съществуващ тест
- Отваряне и изпълнение на съществуващ тест
Създаването на нов сценарий може да стане по два начина – ръчно и автоматизирано.
При автоматизираното създаване потребителя избира Selenim IDE да записва неговите действия по екрана и да генерира кода на теста. След изпълнението и записването на сценария кода може да бъде модифициран ръчно. Удобството е, че не трябва да се знаят функциите за най честите действия на потребителя – зареждане на екран, попълване на различни стойности в полета, работа с контроли на страницата и т.н.
При ръчния вариант – потребителят съм избира функцията /действието/, обекта и стойността на това действие или сам въвежда кода на теста. Неудобството при този вариант е, че трябва да се познават по детайлно функциите на Selenium, и генерирането на тест сценария става по-бавно. Предимствата са, че при автоматизирания вариант не винаги могат да си използват по-специфични функции на Selenium и те трябва да се генерират ръчно.
Изпълнението на тест сценария става автоматично. Сценария може да бъде изпълнен наведнъж както и стъпка по стъпка, в зависимост от желанията на потребителя. При изпълнението на сценария Selenium IDE генерира log screen показващ процеса на изпълнение и резултата от изпълнението на текущата стъпка от сценария.
Selenium IDE позволява използването на някои performance функции – засичане времето за зареждане на дадена страница или изпълнението на дадено действие, но тези функции в повечето случаи трябва да се генерират ръчно и предполага наличието на по-задълбочени познания.
Друго положително свойство е, че Selenium IDE позволява проверката за съществуване на определени елементи, което е много полезно, когато трябва да се провери наличието или отсъствието на тези елементи на страницата
За разлика от Selenium IDE, Selenium Remote Control – а позволява сайта да бъде подложен на тестване с повечето браузъри.
Сам по себе си Selenium Remote Control представлява JAVA сървър с помощта на който може да се комуникира директно с приложението. Чрез него се заобикалят рестрикциите на браузъра, породени от съображения за сигурност.
Освен че може да се ползват различни браузъри за извършване на тестовете, самите тестове могат да бъдат написани на различни програмно езици, сред които: JAVA, C#, Perl, Python, Ruby, PHP и други. Selenium RC е в състояние да изпълнява скриптове записани чрез Selenium IDE. Което е голямо улеснение, понеже така отчасти се заобикаля нуждата да се познава даден програмен език, за да се извършат тестовете.
Няколко от специфичните възможности на Selenium RC са:
- multiWindow
- forcedBrowserMode
- userExtensions
- browsersessionReuse
Основното предимство на Selenium Remote Control е неговата браузърна и платформена независимост. Скриптовете написани за Selenium RM могат да се възпроизвеждат без промяна върху най-разпространените браузъри и ОС.
Недостатък на Selenium RM е трудната работа с него. Всички команди се задават през конзола. Също така за написването на самите скриптове потребителят трябва да е запознат с някой от поддържаните програмни езици.
Основен недостатък на тула е липсата на достатъчно документация, поради което подробното разучаване отнема време.
Selenium Core представлява чист JavaScript/DHTML. Специфичното при него е, че трябва да се копира в директорията на тествания проект и за рабата с него трябва да му се дадат права за писане върху сървъра. Поради това трябва да се прави отделно копие за всеки един проект който ще се тества.
Предимсто на Selenium Core е възможността да се изпълнява Test Suite. Също така чрез него могат да се изпълняват тестове записани чрез Selenium IDE.