MyTetra Share
Делитесь знаниями!
Splinter - фреймверк для тестирования сайтов
Время создания: 19.04.2014 19:21
Текстовые метки: Splinter, python, тестирование
Раздел: Компьютер - Программирование - Язык Python - Тестирование сайтов
Запись: xintrea/mytetra_syncro/master/base/1397920874qwux7dlvxr/text.html на raw.github.com

Spliner - это фреймверк на языке Python для тестирования сайтов.


Внимание! Тестируемые сайты могут быть написаны на любом языке программирования с использованием любых технологий!


Тестируемый сайт может находиться где угодно, то есть, данный фреймверк не нужно размещать на самом сайте. Другими словами, для тестирования сайта можно развернуть Splinter в любом месте, ему даже не нужен веб-сервер, а требуется только язык Python.



Как работает Splinter?


Splinter создает объект "виртуальный браузер", в который скармливается URL тестируемой страницы и прописываются тестирующие действия. Можно заполнить поле формы, найти текст на странице, нажать кнопку. Результат каждого действия можно проверить и вывести соответствующее сообщение в консоль.


По-умолчанию, в качестве виртуального браузера используется драйвер "firefox", но можно указать и другие (в настоящий момент поддерживается chrome).



Простой пример


Следующй пример заходит на сайт google.com, заполняет строку поиска фразой "splinter - python acceptance testing for web applications", находит и нажимает кнопку поиска. Далее, если в результатах поиска присутсвует текст "splinter.cobrateam.info" (это официальный сайт Splinter), программа выведет в консоль сообщение что официальный сайт сплинтера найден на гугле:



from splinter import Browser


browser = Browser()


# Переход на гугл
url = "http://www.google.com"
browser.visit(url)

# Заполнение строки поиска

browser.fill('q', 'splinter - python acceptance testing for web applications')

# Поиск кнопки "Найти"
button = browser.find_by_name('btnG')

# Интерактивное нажатие кнопки "Найти"
button.click()

# Если на странице присутсвует текст splinter.cobrateam.info

if browser.is_text_present('splinter.cobrateam.info'):
   print "Yes, the official website was found!"
else:

   print "No, it wasn't found... We need to improve our SEO techniques"


browser.quit()


Следует обратить внимание, что в коде нет никаких ожиданий загрузки страницы (например после нажатия кнопки "Найти"). Если действие связано с переходом на новую HTML-страницу, фреймверк сам дожидается окончания перехода и продолжает выполнять следуюшие действия.



Компактный синтаксис


Фреймверк Splinter обеспечивает очень компактный синтаксис. Например, чтобы заполнить поле username, которое есть на странице (неважно в какой форме) значением jack, можно написать так:

browser.fill('username', 'jack')

В фреймверке Selenium этот же код выглядел бы так:

elem = browser.find_element.by_name('username')

elem.send_keys('jack')


Соединение действий в последовательность


В вышеприведенном примере для нажатия кнопки выполялось два действия - поиск кнопки и нажатие этой найденной кнопки:


button = browser.find_by_name('btnG')

button.click()

Данные действия можно объединять в одно выражение:


browser.find_by_name('btnG').click()



API Splinter


Splinter - это минимальстичный фреймверк. Его API небольшое и легко изучаемое за один вечер:


http://splinter.cobrateam.info/docs/api/driver-and-element-api.html



 
MyTetra Share v.0.59
Яндекс индекс цитирования