четверг, 29 октября 2009 г.

Selenium и Perl

Selenium IDE позволяет экспортировать записанный автотест в несколько популярных языков программирования. Один из них perl, который я и использую в практической деятельности.
Экспорт производится из меню "Файл"->export test case as и далее выбирается нужный язык программирования. Для экспорта в perl выбираем "Perl-Selenium RC".

Что такое Selenium RC подробно буду описывать в последующих постах. Сейчас достаточно сказать лишь, что это отдельный продукт Селениума, который представляет из себя сервер, принимающий команды из, которых и состоит скриптовый автотест.


В результате экспорта получаем перловый скрипт.
Для рассмотренного в предыдущем посте примера с автотестом на гмейл получим перл-скрипт со следующим содержанием:

use strict;
use warnings;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More "no_plan";
use Test::Exception;

my $sel = Test::WWW::Selenium->new( host => "localhost",
port => 4444,
browser => "*chrome",
browser_url => "http://www.google.ru/" );

$sel->open_ok("/");
$sel->click_ok("link=Gmail");
$sel->wait_for_page_to_load_ok("30000");
$sel->is_text_present_ok("Добро пожаловать в почту Gmail");


Для того, чтобы можно было выполнить этот скрипт необходим сам интерпретатор perl и модуль Test::WWW::Selenium, который можно взять с CPANа. Этот компонент представляет из себя perl-драйвер селениумовских автотестов. Для каждого языка программирования, в который возможен эскпорт автотестов есть свой драйвер.

Модуль довольно весомый и имеет много зависимостей - смело ставьте все, что попросит )
Очень подозреваю, что этот модуль кросплатформенный, но я пользовался им только в linux.

Итак, perl у нас есть, все необходимые модули для запуска.

добавляем права на запуск и выполняем скрипт : perl gmail_test_01.pl

В результате видим сообщение: Error requesting http://localhost:4444/selenium-server/driver/:
500 Can't connect to localhost:4444


Это сообщение значит то, что у нас не запущен Selenium RC - сервер, который должен принимать команды нашего автотеста.

О том как настроить и запустить RC (Remote Control) и о том, как он работает, я напишу в следующем посте...

Комментариев нет:

Отправить комментарий