Перейти к содержимому

Фотография

LR: Определение протокола записи скрипта


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Amstel

Amstel

    Новый участник

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Сидоренко Сергей

Отправлено 26 апреля 2006 - 14:47

Добрый день,
Столкнулся с проблемой при выборе протокола, для записи скрипта в VUGenerator. Дело в том что толком ничего не известно про архитектуру приложения. Вот вся информация которой владею.

Обязательные условия перед установкой приложения были:
1) MSSQL 2000 or 2005
2) IIS 6.0

~ Архитектура это Web Browser Client - Apache Tomcat 5.5 - MSSQL 2005
Допускаю что есть много неточностей в описании проблемы, но может имено Вы поможете мне их устранить и окончательно разобратся, как правильно записать VUser-a и устранить неточности.
Заранее благодарен
  • 0

#2 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 27 апреля 2006 - 00:12

Ну в первом приближении я бы сказал что это обычный Web протокол. Клиент-браузер разговаривает с web сервером. Пробуйте.
  • 0
Дмитрий Шевченко

HP Software

#3 Amstel

Amstel

    Новый участник

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Сидоренко Сергей

Отправлено 28 апреля 2006 - 16:39

Дмитрий пожалуйста подскажите, есть скрипт:
web_set_user("domain\\user","pass","192.168.1.1:3128");
	web_url("192.168.1.164:8060", 
  "URL=http://192.168.1.164:8060/", 
  "TargetFrame=", 
  "Resource=0", 
  "RecContentType=text/html", 
  "Referer=", 
  "Snapshot=t5.inf", 
  "Mode=HTML", 
  LAST);
Запись проходит удачно, после прогона получаю след. ошибку
перед использованием web_url, добавлял
vuser_init.c(20): Error -26547: Authentication required, please use web_set_user, e.g. web_set_user("domain\\user", "password", "host:port");  	[MsgId: MERR-26547]
vuser_init.c(20): Error -26630: HTTP Status-Code=401 (Unauthorized) for "http://192.168.1.164:8060/"  	[MsgId: MERR-26630]
vuser_init.c(20): web_url("192.168.1.164:8060") highest severity level was "ERROR", 1656 body bytes, 216 header bytes  	[MsgId: MMSG-26388]
Пробовал изменить настройки Security настройки IE 6.0, ставил на Automatic logon with current user and password, всё равно возникает такая ошибка.

Заранее благодарен за ответ
  • 0

#4 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 28 апреля 2006 - 23:08

Настройки IE тут ни при чем. Когда вы запускаете скрипт он запускается движком LR, а не IE.

Я надеюсь, что вместо domain, user и pass вы все-таки используете реальные значения? Если так, то посмотрите, чтобы ни имя пользователя, ни пароль не содержали никаких спец. символов (#~,?{}$% и т.п.).

Что еще можно сделать. Включите extended log с опцией "Advance trace", запустите скрипт и сравните headers в execution log с аналогичными headers из recording log. Они должны быть идентичными. Если в execution log что-то пропущено, то добавьте это "что-то" в скрипт с помощью web_add_cookie() .
  • 0
Дмитрий Шевченко

HP Software

#5 Amstel

Amstel

    Новый участник

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Сидоренко Сергей

Отправлено 04 мая 2006 - 15:10

Я надеюсь, что вместо domain, user и pass вы все-таки используете реальные значения?


Спасибо, Вы слишком "хорошо" обо мне думаете, хорошо пошутили :rtfm: .
Проблему решил, спасибо за совет с web_cookie.

Но в процесе возник ещё один маленький вопрос, он носит скорее "организационный" характер, объясню на примере:
Через Веб интерфейс пользователь может выполнять 2 операции (выборка и добавление значений в БД), нужно создать функцию на каждую из операций, чтобы можно было из Action(), например, используя switch, вызывать то одну то другую функцию (да понимаю, можно всё уместить в один скрипт, но это жутко громоздко и не красиво, хочеться естетики :crazy: ).

Пробовал записывать нужные мне функции в Actions, а потом их вызывать, но как вы сами понимаете в результате получалось так что некоторые из "Actions -функций" проганялись дважды, вначале после вызова а потом когда доходила их очередь по порядку.

Была идея написать на Си библиотеку с функциями, а потом подключать mylib.h к скрипту. Но, на этом я и остановился, по-скольку не знаю как буду подключать библиотеки ЛР c функциями (например, web_url ).

Подскажите простой выход из положения?

Заранее благодарен
  • 0

#6 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 05 мая 2006 - 01:03

Спасибо, Вы слишком "хорошо" обо мне думаете, хорошо пошутили :crazy:

Я не шутил и не имел никакого намерения вас каким-либо образом задеть. Просто раз уж вы поместили кусок кода как CODE, то вполне естественно, что я воспринимал весь текст буквально. Если бы вы написали в примере что-нибудь вроде <my_domain>\\<my_user>, то и вопроса бы не возникло.

Подскажите простой выход из положения?

Обычно в таких случаях создают 2 отдельных actions и дают им вменяемые имена, например DB_Search и DB_Add. После этого каждую операцию от начала и до конца записывают в отдельный action (login/logout можно вынести в vuser_init и в vuser_end соответственно).

При таком подходе вы получаете большую гибкость в реализации разнообразных стратегий выполнения ваших операций. Например, если вы знаете, что 80% ваших пользователей делают выборку, а 20% добавляют что-то в БД, то вы легко через RTS реализуете такую логику (switch-логика реализуется точно таким же способом - 100% и 0%). Ну и само собой, что вам никто не мешает оставить все как есть - в этом случае обе операции будут выполняться друг за другом последовательно. Такой модульный скрипт легко масштабируется - если в будущем вы решите, что вам надо добавить еще одну операцию для тестирования, то просто создадите еще один action.
  • 0
Дмитрий Шевченко

HP Software

#7 Amstel

Amstel

    Новый участник

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Сидоренко Сергей

Отправлено 05 мая 2006 - 06:51

Дмитрий, ещё раз спасибо, моей ошибкой было то что я не убрал из RTS->Run Logic "Actions-функции", которые я потом сам вызываю.

Спасибо :crazy:
  • 0

#8 Green

Green

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 233 сообщений
  • ФИО:Гринкевич Сергей
  • Город:Москва

Отправлено 05 мая 2006 - 08:51

Пробовал записывать нужные мне функции в Actions, а потом их вызывать,  но как вы сами понимаете в результате получалось так что некоторые из "Actions -функций" проганялись дважды, вначале после вызова а потом когда доходила их очередь по порядку.

Была идея написать  на Си библиотеку с функциями, а потом подключать mylib.h к скрипту. Но, на этом я и остановился, по-скольку не знаю как буду подключать библиотеки ЛР c функциями (например, web_url ).

Подскажите простой выход из положения?

Заранее благодарен

Просмотр сообщения


Amstel,

Вы можете попробовать реализовать следующий подход.

В инициализационной секции перед функцией vuser_init() можно проводить объявление глобальных переменных и писать тела любых функции. Во время начала работы скрипта все эти данные заносятся в опереатиную памяти и могут быть использованы в других частях скрипта.

Далее в разделе Action() можно строить любую программную логику просто вызывая нужную функцию и передавая ей текущие параметры.

Если у Вас слишком большой набор функций и Вам не удобно писать их все в инициализационном разделе, то можно оформить их в виде библиотеки (как Вы и хотели), а потом подгрузить библиотеку до начала функции vuser_init().
  • 0
Гринкевич Сергей

#9 Amstel

Amstel

    Новый участник

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Сидоренко Сергей

Отправлено 05 мая 2006 - 15:01

Green, спасибо за ответ.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных