Использование HTTP-соединений для VU-скриптовИсточник: IBM developerWorks Россия Вайбхав Теланг, инженер-разработчик ПО, IBM India Software Labs Гаррет Брауни, инженер-консультант по системным тестам, IBM Dublin Software Labs Мортен Кристиансен, инженер-разработчик ПО, IBM Dublin Software Labs
ВведениеIBM Rational Robot предоставляет возможность записать скрипты двумя способами:
Далее, мы рассмотрим более подробно, как обращаться с 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 в ваш браузер, то порядок действий, происходящих на заднем плане, будет следующим:
Поэтому каждое изображение на web-странице, означает, что должно существовать отдельное TCP-соединение, и повторяется один и тот же процесс. Теперь, когда вы знаете это фундаментальное понятие, длинный VU-код, созданный в скрипте Rational Robot, несомненно, имеет для вас больше смысла. VU-скрипты Rational Robot составлены из повторяющихся кодовых блоков, которые отражают все эти шаги. Эти кодовые блоки являются отдельными TCP-соединениями, установленными клиентом для выполнения HTTP запросов Рисунок 1. VU-скрипт Rational Robot Как код VU-скрипта влияет на HTTP-соединенияДалее показано, как эти шаги соотносятся с соответствующими операторами машинной программы VU-скрипта, созданного Rational Robot:
В записанном VU-скрипте будет целый ряд операторов, установленных сервером соединения, которые последовательно закрываются до того, как заканчивается скрипт. Инженеры по автоматизации могут выбрать или отредактировать скрипты, чтобы задать параметры, или ввести в работу заказные логические схемы, или добавить или удалить недействительные HTTP-запросы. Тем не менее, если вы редактируете скрипты, то необходимо обратить внимание на команды Выбор оптимального соотношенияЕсли оставлять HTTP-соединения в VU-скриптах открытыми, то это приведет к более значительным объемам занимаемой памяти в расчете на одного виртуального пользователя (VU), следовательно, слишком много памяти будет отводиться на машинах TestManager и Test Agent. Если закрывать каждое HTTP-соединение, то это приведет к эффективному использованию памяти, тем самым, помогая соизмерять большее число виртуальных пользователей с имеющимися ресурсными возможностями. На рисунках 2 и 3, в которые включены наблюдения, выполненные в ходе работы с IBM® Rational® TestManager и IBM® Rational® Test Agent, показаны результаты. Далее следуют снимки изображений с экрана монитора Windows Performance для rtsvui-процессов на одном из агентов Rational Test. Рисунок 2. Снимок скрипта виртуального пользователя, если есть незакрытые HTTP-соединения Рисунок 3. Снимок скрипта виртуального пользователя, если все HTTP-соединения правильно закрыты Примечание: Цифры 18 and 8 MB могут варьироваться от случая к случаю, в зависимости от скрипта и автоматизированных операций. Rational TestManager и Rational Test Agent также накладывают ограничения по наибольшему числу соединений, которые могут быть открыты одновременно. Число ограничений по умолчанию составляет 256 соединений. Если неэффективное редактирование скрипта приводит к достижению вами этого предела в любой момент во время ваших тестов, то вы можете увидеть сообщения об аномальном завершении VU на соответствующей закладке: Если общее число открытых HTTP-соединений достигает указанного ограничения на соединения на HTTP-сервере, то скорее всего вы увидите соединения, лимит времени которых истек. В результате чего ваш тест тоже закончится досрочно. ЗаключениеТеперь, когда вам стало более понятно, как IBM Rational Robot работает с HTTP-соединениями, вы знаете, какие меры предосторожности предпринять в процессе редактирования VU-скриптов, чтобы предотвратить сбои и разъединения. Если вовремя отслеживать предпосылки таких отказов, то это поможет вам распознать сбои в HTTP-соединениях в вашем VU-скрипте IBM Rational Robot. |