Selenium Core. Практика.


(Mykhailo Poliarush) #1

Для того, что бы хорошо понять, как устроен Selenium сам по себе, нужно хорошо попрактиковаться с Selenium Core. Как говориться, лучше понять несколько принципов, нежели запоминать несколько десятков фактов. Ну что, готовы, тогда начнем!

Заметка: В этом уроке мы будем практиковаться с Selenium Core, потому необходимо понимать, что это такое. Так как это практика, а не теория, то тут будут отображены только фактические шаги, которые нужно воспроизвести.

Что будем тестировать

Для тестирования нам необходимо, какая-то программа, которая бы имела маленький веб-сервер. Для чего нужен веб-сервер? Selenium Core – это JavaScript / DHTML фреймворк, который имеет свои ограничения JavaScript-а. Например, JavaScript не может обратиться с одного сайта на другой, потому как существуют ограничения по безопасности, которые не позволяют этого сделать. Из-за этого нужно будет заливать тесты на веб-сервер, где крутиться веб-приложение.

Честно говоря, долго думать не пришлось. Я уже давно практикую GTD (Getting things done) в своей жизни и соответственно использую программы, которые помогают мне в этом. Вот одна из них. Она называется What Is Next?, написанная на Ruby on Rails. Эта программа имеет веб-сервер. Именно то, что нам и нужно.

Устанавливаем все необходимое

  1. Скачиваем WhatIsNext c Rubi Runtime.
  2. Распаковать архив в C:\Program Files\whats_next\
  3. Переходим к директории, где хранятся веб-приложения. C:\Program Files\whats_next\public
  4. Создаем директорию для тестов  в C:\Program Files\whats_next\public\testing
  5. Скачиваем Selenim Core
  6. Распаковать архив в C:\Program Files\whats_next\public\testing

Заметка: я описываю все как сделано у меня. Вы вольны в своем выборе и можете сделать все по-другому, если хотите конечно.

Делаем проверку

Что бы удостовериться, что все работает нормально нужно проверить, что:

  1. Тестируемое приложение запускается
    1. Переходим в C:\Program Files\whats_next\ и запускаем start.cmd
    2. Открыть браузер и загрузить страницу http://localhost:3300 
    3. Попробовать, что-то добавить / изменить / удалить
    4. Все должно работать.
  2. Тесты запускаются через веб-сервер
    1. В стандартном архиве Selenium Core идут примеры, которые уже можно запускать. Что мы и сделаем
    2. Открыть браузер и загрузить страницу http://localhost:5000/testing/index.html
    3. Нажать на ссылочку Selenium TestRunner
    4. Запустить тесты на выполнение. Нажать кнопку GO, а следом Run All tests
    5. Тесты должны пройти. Обычно они проходят успешно. Если это не так, то честно говоря не страшно.

План действий

  • Необходимо придумать какой-то тест, который нужно автоматизировать
  • Создать Selenium тестовый набор
  • Необходимо создать пустой Selenium тест и включить его в тестовый набор
  • Залить все существующие файлы на веб-сервер
  • Выполнить автоматизацию теста
  • Стартовать веб-сервер, запустить тест и сделать отладку

Все предельно просто и понятно. Если понятно, то приступим! Если нет, то нужно перечитать еще раз и хорошенько подумать. Будут вопросы, то пишите комментарии.

Придумываем ручной тест для автоматизации

Тест: Создать и проверить новое действие

  1. Шаг: Нажать "New Action". Ожидаемый результат: Окно для создания нового действия открыто
  2. Шаг: Выбрать состояния в поле "Status". Тестовые данные: Current. Ожидаемый результат: "Current" состояние выбрано и показывается
  3. Шаг: Написать название действия. Тестовые данные: Write post to my blog. Ожидаемый результат: Название действия отображается в "Action" поле
  4. Шаг: Установить значение "Due date". Тестовые данные: tomorrow. Ожидаемый результат: должна отобразиться текущая дата
  5. Шаг: Установить данное действие как первое. Ожидаемый результат: Поле отмечено
  6. Шаг: Нажать кнопку "Save". Ожидаемый результат: Окно создания нового действия закрыто
  7. Шаг: Проверить действие в текущем списке. Ожидаемый результат: Действие присутствует в списке действий
  8. Шаг: Проверить, что действие находится в начале списка. Ожидаемый результат: Действие находится в начале списка
  9. Шаг: Проверить название действия. Ожидаемый результат: Название действия соответствует "Write post to my blog"

Создаем Selenium Core тестовый набор

В Selenium Core тесты выглядят, как обычный HTML с таблицами. Потому, если у вас есть знания HTML, то это будет только плюс, а если нету, то необходимо заглянуть www.w3schools.com и www.w3.org.

  1. Создаем файл suite.html
  2. В suite.html прописываем таблицу в, которой указываем ссылку на наш будущий тест
  3. Сохраняем файл.

suite.html

















Создаем пустой Selenium тест

Тут тоже все очень просто.

  1. Создаем вышеупомянутый файл test.html 
  2. В test.html прописываем таблицу состоящая из трех колонок
  3. Сохраняем файл.

test.html















Копируем файлы на веб-сервер

Как уже было сказано выше, необходимо скопировать созданные файлы на веб-сервер. А именно в директорию, где хранятся автоматические тесты Selenim Core. C:\Program Files\whats_next\public\testing\

Выполняем автоматизацию теста










































































































































Стартуем веб-сервер, запускаем тест и делаем отладку

  • Для того, чтобы стартовать веб-сервер (если он уже не запущен), необходимо сделать следуещее. Перейти в C:\Program Files\whats_next\ и запустить start.cmd
  • Запустить тест можно несколькими способами
  • Собственно отладка теста происходит следующим образом. Запускаете тест, смотрите на каком шаге падает тест, пытаетесь понять и исправить ошибку, перезапускаете тест.

(Mike) #2

Для Selenium port=5000 (место в тексте: "открыть браузер и загрузить страницу http://localhost:5000/testing/index.html" ), а для Whats_next - 3300. Это опечатка (или я чего-то не поинмаю)?



(Mykhailo Poliarush) #3

Да, опечатка, должно быть 3300 порт.
Вообщем в whats_next приложении есть настройке по порту использования. Собстветвенно, как вы его настроите, такой и используйте.


(blackVelvet) #4

Танцы с бубном не помогают: 1) страница с программкой не находится; 2) поиск в инете не дает положительных результатов, т.к. неизвестен производитель этого ПО, а также потому что поиск "what's next" в гугле возвращает 14,700,000 записей, не имеющих отношения к данному топику. Плиз хелп.


(blackVelvet) #5

Нашлась рабочая ссылка для What's Next. http://muermann.org/download.html


(Mykhailo Poliarush) #6

да, сайт производителя ПО переехал.
но так как сайт нашелся, то Эврика! :)


(astafev) #7

Как уважающий себя тестировщик, не могу не заметить:

Во-первых непонятно, где и как искать дистрибутив Core? Если раньше и был отдельны продукт Core, то щас его нет. Если нужно скачивать selenium-server-standaone, то так и надо написать.

2. Открыть браузер и загрузить страницу http://localhost:5000/testing/index.html

3. Нажать на ссылочку Selenium TestRunner

2-й шаг не нужен, ибо неверен, такого файла нет (даже если порт правильный указать)

+ тест валится в IE.

Немного оффтоп: у меня тоже иногда возникают проблемы с IE с тестами, работающими в других браузерах. Вы, случайно, не знаете в чем проблема и как она лечится?


(Mykhailo Poliarush) #8

Очень уважаю уважающих себя тестировщиков, которые не проходят мимо и рассказывают о ошибках. 

А теперь по деталях статья была написана еще в 2009 году, за это время с селениумом столько изменилось, что в новой версии вообще Selenium Core нету.

где и как искать дистрибутив Core? - нигде
2-й шаг не нужен, ибо неверен, такого файла нет (даже если порт правильный указать) - этот пункт был касательно Selenium Core

 Немного оффтоп: у меня тоже иногда возникают проблемы с IE с тестами, работающими в других браузерах. Вы, случайно, не знаете в чем проблема и как она лечится? - причины всегда разные, тут надо смотреть отдельно, создавайте тему на http://automated-testing.info/forum с деталями и там разберемся


(astafev) #9

В архиве selenium server-standalone есть папочка Core, которую можно и достать и следуя вашему алгоритму с некоторыми ухищрениями (он берет только testSuite и только из своей папки) все сделать и посмотреть как оно замечательно работает.
Вот только стоит ли? Вот что пишут в офф. документации:
"The TestRunner is not commonly used now and is likely to be deprecated."


(Mykhailo Poliarush) #10

да, если распокавать jar файл, там можно найти, его там оставили, потому что есть проекты, где это еще используется.

но вот действительно, нужно ли?! Мой ответ - НЕТ. Смотрите в сторону Selenium IDE и webdriver, если мы говорим о Selenium.

 


(donna) #11

Ув. Михаил,

так может вы внесете изменения в вашу статью с учетом всех комментов и того, что уже не 2009 год?


(Mykhailo Poliarush) #12

Я бы с радостью, только вот материала очень много, которого надо поддерживать, а вот я один :)

Похорошему надо вообще переписать статью, так как много чего изменилось, потому получается новая статья.

Как будет время напишу, поставил себе в задачи.


(mamax) #13

http://muermann.org/download.html
нерабочая ссылка


(Mykhailo Poliarush) #14

приложение уже официально не поддерживается

потому сайт и не доступен :(

жаль хотя было хорошее приложение, по крайней для практики