Archive for ноября, 2008

Как использовать Selenium плюс .NET

среда, ноября 26, 2008

В этой статье я расскажу как быстро внедрить приёмочное тестирование используя Selenium. В качестве языка, на котором будут написаны и выполняться тесты я выбрал C#. Что нам понадобиться?
1. Selenium IDE ( _http://selenium-ide.seleniumhq.org/download.jsp) - это плагин к браузеру FireFox. С его помошью можно удобно и быстро написать тест кейсы и сконвертировать в нужный нам язык. Кроме того плагин позволяет запустить записанные тесты, что даёт возможность сразу увбедиться в правильности работы теста. Если плагин что либо не так записал, то в нём же можно отредактировать\удалить\добавить шаги.

Selenium ide

Selenium ide

2. Selenium Remote Control _http://selenium-rc.seleniumhq.org/download.jsp) - с помошью этого программного продукта можно будет запускать созданные тесты на других браузерах. Selenium RC по сути является веб сервером, который будет обрабатывать команды посылаемые ему. Эти команды будут формироваться нашим .NET приложением. Необходимая для этого библиотека поставляется с Selenium RC. Нам достаточно будет её подключить и всё.
Итак начнём. Скачиваем и устанавливаем выше указанные программые продукты. Запускаем FireFox и идём в меню Инструменты - выбираем Selenium IDE. Далее идём на сайт, для которого необходимо создать тесты. Проделываем все операции, а плагин в это время запишет все действия. Останавливаем запись и сразу запускаем тест, что бы проверить на работоспособность. В некоторых местах вероятнее всего нужно будет вставить паузы, что бы тест успевал отрабатывать. После того как тест успешно отработал конвертируем его в C#, меню Options -> Format -> C# Selenium RC. Далее запускаем Microsoft Visual Studio 2005\2008. Создаём новый проект, выбираем шаблон Console Application и язык C#.

Microsoft Visual Studio

После того как Microsoft Visual Studio сгенерирует проект, необходимо добавить библиотеки, для этого справа в окне Solution Explorer нажимаем правой кнопкой миши по нашему проекту и выбираем Add Reference -> вкладка Browse и идём в папку selenium-remote-control, она в архиве Selenium Remote Control :) . Далее выбираем папку selenium-dotnet-client-driver, выделяем все *.DLL файлы в ней - это nmock.dll , nunit.core.dll, nunit.framework.dll, ThoughtWorks.Selenium.Core.dll, ThoughtWorks.Selenium.IntegrationTests.dll , ThoughtWorks.Selenium.UnitTests.dll и добавляем их. Теперь возвращаемся в окно Selenium IDE и копируем с него все объявления (using) и заменяем ими вместо тех что в студии. Далее копируем оствашуюся часть кода и вставляем ниже тоже в студию. После этого находим функцию static void Main(string[] args) и в её теле создаём объект класса SeleniumTests.NewTest, для того чтобы потом можно было вызвать его две функции: SetupTest() и TheNewTest(). Делается всё это счастье тремя строчками

SeleniumTests.NewTest obj = new SeleniumTests.NewTest();
obj.SetupTest();
obj.TheNewTest();

Теперь осталось указать нужный нам браузер, в котором будет отрабатывать наш тест. Это указывается в качестве параметра в функции DefaultSelenium. Там по умоллчанию стоит "*chrome". Чтобы тест запустился в Internet Explorer указываем "*iexplore". Следующий параметр этой функции указывает на стартовую страницу, значение по умолчанию  "h ttp://change-this-to-the-site-you-are-testing/", его нужно заменить на URL вашего сайта. Теперь необходимо запустить сам Selenium Remote Control сервер, что бы он мог принимать и выполнять команды от нашего приложения. Сервер находится в паке selenium-server - это Java приложение и для его работы необходимо поставить (если не установлено) Java Virtual Machine (_http://www.java.com/ru/download/index.jsp). Для удобного запуска я создал Selenium RC.bat файл разместил его на панели быстрого запуска и написал следующие команды:

cd D:\путь\к\Selenium Remote Control
cls
java -jar selenium-server.jar -interactive

Параметр -interactive позволяет давать команды серверу вручную прямо из консоли. Сохраняем файл и запускаем сервер двойным кликом по bat файлу. Если всё сделали правильно, то в консоли должны увидеть что-то вроде этого:

13:02:57.283 INFO - Java: Sun Microsystems Inc. 11.0-b15
13:02:57.299 INFO - OS: Windows XP 5.1 x86
13:02:57.299 INFO - v1.0-beta-1 [2201], with Core v1.0-beta-1 [1994]
13:02:57.377 INFO - Version Jetty/5.1.x
13:02:57.377 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
13:02:57.393 INFO - Started HttpContext[/selenium-server,/selenium-server]
13:02:57.393 INFO - Started HttpContext[/,/]
13:02:57.408 INFO - Started SocketListener on 0.0.0.0:4444
13:02:57.408 INFO - Started org.mortbay.jetty.Server@14693c7
Entering interactive mode... type Selenium commands here (e.g: cmd=open&1=http://www.yahoo.com)

Теперь возвращаемся к нашему тесту в Microsoft Visual Studio и запускаем его (F5). Если ошибок в коде нет, то должен запуститься Internet Explorer с тремя фреймами. В верхних двух можно наблюдать какой в данный момент выполняется шаг, ну а внизу ваш сайт, для которого будет выполняться тест. Теперь для запуска теста в Internet Explorer в следующий раз необходимо будет просто запустить Selenium Remote Control сервер и ваш exe файл, который создала Microsoft Visual Studio. Если будете перемещать exe файл из папки, то не забудьте скопировать ту да же и файлы библиотек. Продуктивного тестирования!

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong


  • rss