(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Использование HTTP-соединений для VU-скриптов

Вайбхав Теланг, инженер-разработчик ПО, IBM India Software Labs Гаррет Брауни, инженер-консультант по системным тестам, IBM Dublin Software Labs Мортен Кристиансен, инженер-разработчик ПО, IBM Dublin Software Labs

Введение

IBM Rational Robot предоставляет возможность записать скрипты двумя способами:

  • в режиме GUI: основные скрипты SQA для функциональной автоматизации
  • в режиме VU: VU скрипты, используемые для автоматизации исполнения

Далее, мы рассмотрим более подробно, как обращаться с HTTP-соединениями в VU-скриптах Rational Robot. Если вы записываете свой первый VU-скрипт Rational Robot, вам необходимо прочесть статью IBM developerWorks под названием "HTTP VU-скрипты". Это поможет вам разобраться в записанных скриптах и других основных понятиях.

VU-скрипты Rational Robot

Когда вы записываете диалоги клиент/сервер, Rational Robot создает скрипт виртуального пользователя (VU). Вы можете проиграть созданный скрипт в его первоначальном виде, либо отредактировать его каким-либо образом для достижения необходимой вам функциональности. Например, вы можете задать параметры имени сервера-хоста, чтобы использовать тот же самый скрипт на множественных хостах. В процессе записи VU Rational Robot следит за диалогом клиент/сервер и переводит необработанный поток сообщений в серию VU-команд для хранения в созданном скрипте. Все запросы клиента переводятся в серию VU-команд; поэтому один клик на web-страницу может привести к созданию тысячи строчек VU-кода. Это значительно усложняет процесс понимания, а впоследствии и редактирования VU-скриптов.

В следующем примере мы рассмотрим типичный обмен HTTP-сообщениями запрос/ответ, а затем соотнесем его с VU-скриптом, записанным с помощью Rational Robot. Обычно на web-сайте существует серверный процесс прослушивания на TCP-порте 80 (или на другом порте) для входящих запросов на соединение от клиентов. Например, если впечатать запрос на web-страницу http://www.ibm.com/rational.html в ваш браузер, то порядок действий, происходящих на заднем плане, будет следующим:

  1. Браузер проводит синтаксический анализ введенного URL.
  2. Браузер запрашивает DNS для IP-адреса хоста (www.ibm.com в данном примере).
  3. DNS отвечает, приводя IP-адрес хоста.
  4. Браузер устанавливает TCP-соединение с портом 80 на web-сервере с возвращенным IP-адресом.
  5. Браузер выдает запрос на HTTP-заголовок, за которым следует URL документа. Для этого запроса используется команда "get", чтобы пришел ответ с сервера на документ rational.html.
  6. Сервер отвечает HTTP-кодом в HTTP-заголовке (200, если все верно), за которым следует запрашиваемый документ HTML.
  7. TCP-соединение отключается.
  8. Браузер проводит синтаксический анализ HTML и отображает web-страницу.
  9. Для каких-либо встроенных запросов в полученном HTML на получение статичного содержимого, наприрмер GIF, CSS или JS-файлов, браузер устанавливает новое TCP-соединение с сервером и загружает файлы подобным образом.

Поэтому каждое изображение на web-странице, означает, что должно существовать отдельное TCP-соединение, и повторяется один и тот же процесс. Теперь, когда вы знаете это фундаментальное понятие, длинный VU-код, созданный в скрипте Rational Robot, несомненно, имеет для вас больше смысла.

VU-скрипты Rational Robot составлены из повторяющихся кодовых блоков, которые отражают все эти шаги. Эти кодовые блоки являются отдельными TCP-соединениями, установленными клиентом для выполнения HTTP запросов get и post. На рисунке 1 показан скриншот записанного VU-скрипта Rational Robot:

Рисунок 1. VU-скрипт Rational Robot
VU-скрипт Rational Robot

Как код VU-скрипта влияет на HTTP-соединения

Далее показано, как эти шаги соотносятся с соответствующими операторами машинной программы VU-скрипта, созданного Rational Robot:

www_ibm_com = http_request ["Rational~001"] "www.ibm.com:80"
TCP-соединение с www_ibm_com активировано, что открывает сетевое соединение от машины клиента с HTTP-сервером, чтобы послать http_request "Rational~001".

Set Server_connection = www_ibm_com;
Соединение ассоциируется с переменной ответа Server_connection.

http_header_recv ["Rational~002"] 200; /* OK */
HTTP-заголовок получен с HTTP-сервера.

http_nrecv ["Rational~003"] 100 %%; /* 20608 bytes */
HTTP-ответ получен.

http_disconnect(www_ibm_com);
Соединение закрыто.

В записанном VU-скрипте будет целый ряд операторов, установленных сервером соединения, которые последовательно закрываются до того, как заканчивается скрипт. Инженеры по автоматизации могут выбрать или отредактировать скрипты, чтобы задать параметры, или ввести в работу заказные логические схемы, или добавить или удалить недействительные HTTP-запросы. Тем не менее, если вы редактируете скрипты, то необходимо обратить внимание на команды http_request и http_disconnect. Эти две команды выделяют и освобождают системные ресурсы для клиента или агентов Rational Test, поэтому вам следует объединять их в пары, иначе ваши скрипты могут привести к сбоям в соединениях или даже случайно заблокировать системные ресурсы. Поэтому очень важно запомнить, что каждый раз, когда вы используете оператор http_request в скрипте, чтобы открыть HTTP-соединение, вам нужен соответствующий оператор http_disconnect, который закрывает соединение.

Выбор оптимального соотношения

Если оставлять HTTP-соединения в VU-скриптах открытыми, то это приведет к более значительным объемам занимаемой памяти в расчете на одного виртуального пользователя (VU), следовательно, слишком много памяти будет отводиться на машинах TestManager и Test Agent. Если закрывать каждое HTTP-соединение, то это приведет к эффективному использованию памяти, тем самым, помогая соизмерять большее число виртуальных пользователей с имеющимися ресурсными возможностями. На рисунках 2 и 3, в которые включены наблюдения, выполненные в ходе работы с IBM® Rational® TestManager и IBM® Rational® Test Agent, показаны результаты. Далее следуют снимки изображений с экрана монитора Windows Performance для rtsvui-процессов на одном из агентов Rational Test.

Рисунок 2. Снимок скрипта виртуального пользователя, если есть незакрытые HTTP-соединения
Снимок скрипта виртуального пользователя, если есть незакрытые HTTP-соединения

Рисунок 3. Снимок скрипта виртуального пользователя, если все HTTP-соединения правильно закрыты
Снимок скрипта виртуального пользователя, если все HTTP-соединения правильно закрыты

Примечание: Цифры 18 and 8 MB могут варьироваться от случая к случаю, в зависимости от скрипта и автоматизированных операций.

Rational TestManager и Rational Test Agent также накладывают ограничения по наибольшему числу соединений, которые могут быть открыты одновременно. Число ограничений по умолчанию составляет 256 соединений. Если неэффективное редактирование скрипта приводит к достижению вами этого предела в любой момент во время ваших тестов, то вы можете увидеть сообщения об аномальном завершении VU на соответствующей закладке: "Failed to connect to "9.182.230.90:80" after 100 attempts: [24.7.5.4] Maximum number of allowed open connections (256) exceeded"

Если общее число открытых HTTP-соединений достигает указанного ограничения на соединения на HTTP-сервере, то скорее всего вы увидите соединения, лимит времени которых истек. В результате чего ваш тест тоже закончится досрочно.

Заключение

Теперь, когда вам стало более понятно, как IBM Rational Robot работает с HTTP-соединениями, вы знаете, какие меры предосторожности предпринять в процессе редактирования VU-скриптов, чтобы предотвратить сбои и разъединения. Если вовремя отслеживать предпосылки таких отказов, то это поможет вам распознать сбои в HTTP-соединениях в вашем VU-скрипте IBM Rational Robot.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции IBM Rational/Telelogic - системный инжиниринг, управление требованиями, изменениями, жизненным циклом ИС, умное управление проектами »
Написать редактору 
 Рекомендовать » Дата публикации: 13.11.2006 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
IBM RATIONAL Clearcase Floating User License + Sw Subscription & Support 12 Months
Rational ClearCase Multisite Floating User License
Rational ClearQuest Floating User License
IBM Rational Method Composer Authorized User License
IBM RATIONAL Rose Enterprise Floating User License + Sw Subscription & Support 12 Months
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Новости мира 3D-ускорителей
Adobe Photoshop: алхимия дизайна
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Пишу программы на заказ профессионально (2858)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
Как восстановить рабочий стол? Помогите срочно надо! (3)
Windows 7 максимальная. В учетной записи сменила пароль и выключила комп, после включения...
 
Пять возможностей Windows, о которых вы могли не знать (5)
пыщпыщ
 
Регистрация на Oracle.com (3)
Сразу прошу прощения за тупой вопрос, но вчера зарегался на oracle.com (чтоб 9i слить себе...
 
Отличается ли ДрифтКазино от беттинга? (1)
Друзья, давно заметил, что на Дрифте уже несколько месяцев во всю рекламируется и предлагается...
 
 
 



    
rambler's top100 Rambler's Top100