(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 Quality Manager Quality Professional Authorized User Single Install License + Sw Subscription & Support 12 Months
IBM RATIONAL Clearcase Floating User From Rational Clearcase Lt Floating User Trade Up License + Sw Subscription & Support 12 Months
IBM Rational Method Composer Authorized User License
IBM Rational Functional Tester Floating 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 "с нуля"
Delphi - проблемы и решения
Каждый день новые драйверы для вашего компьютера!
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Настройка меню "Пуск" Windows 7 при помощи реестра (3)
Скажите пожалуйста, а как можно закрепить ярлыки программ с помощью твиков реестра в левой части...
 
Ищу программиста PYTHON (1)
Ищу программиста для написание программ python 3 + библиотека tkinter Есть данные в БД...
 
Пишу программы на заказ профессионально (2265)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
Ищу программиста для написания программы (17)
Ищу программиста ,владеющего Вижуал Бэйсик и программированием в Экселе, для написания...
 
Программы Delphi на заказ (236)
Пишу программы в среде Delphi на заказ http://bddelphi.ucoz.ru/
 
 
 



    
rambler's top100 Rambler's Top100