LR: Определение протокола записи скрипта
#1
Отправлено 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 и устранить неточности.
Заранее благодарен
#2
Отправлено 27 апреля 2006 - 00:12
#3
Отправлено 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, всё равно возникает такая ошибка.
Заранее благодарен за ответ
#4
Отправлено 28 апреля 2006 - 23:08
Я надеюсь, что вместо domain, user и pass вы все-таки используете реальные значения? Если так, то посмотрите, чтобы ни имя пользователя, ни пароль не содержали никаких спец. символов (#~,?{}$% и т.п.).
Что еще можно сделать. Включите extended log с опцией "Advance trace", запустите скрипт и сравните headers в execution log с аналогичными headers из recording log. Они должны быть идентичными. Если в execution log что-то пропущено, то добавьте это "что-то" в скрипт с помощью web_add_cookie() .
#5
Отправлено 04 мая 2006 - 15:10
Я надеюсь, что вместо domain, user и pass вы все-таки используете реальные значения?
Спасибо, Вы слишком "хорошо" обо мне думаете, хорошо пошутили .
Проблему решил, спасибо за совет с web_cookie.
Но в процесе возник ещё один маленький вопрос, он носит скорее "организационный" характер, объясню на примере:
Через Веб интерфейс пользователь может выполнять 2 операции (выборка и добавление значений в БД), нужно создать функцию на каждую из операций, чтобы можно было из Action(), например, используя switch, вызывать то одну то другую функцию (да понимаю, можно всё уместить в один скрипт, но это жутко громоздко и не красиво, хочеться естетики ).
Пробовал записывать нужные мне функции в Actions, а потом их вызывать, но как вы сами понимаете в результате получалось так что некоторые из "Actions -функций" проганялись дважды, вначале после вызова а потом когда доходила их очередь по порядку.
Была идея написать на Си библиотеку с функциями, а потом подключать mylib.h к скрипту. Но, на этом я и остановился, по-скольку не знаю как буду подключать библиотеки ЛР c функциями (например, web_url ).
Подскажите простой выход из положения?
Заранее благодарен
#6
Отправлено 05 мая 2006 - 01:03
Я не шутил и не имел никакого намерения вас каким-либо образом задеть. Просто раз уж вы поместили кусок кода как 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.
#7
Отправлено 05 мая 2006 - 06:51
Спасибо
#8
Отправлено 05 мая 2006 - 08:51
Пробовал записывать нужные мне функции в Actions, а потом их вызывать, но как вы сами понимаете в результате получалось так что некоторые из "Actions -функций" проганялись дважды, вначале после вызова а потом когда доходила их очередь по порядку.
Была идея написать на Си библиотеку с функциями, а потом подключать mylib.h к скрипту. Но, на этом я и остановился, по-скольку не знаю как буду подключать библиотеки ЛР c функциями (например, web_url ).
Подскажите простой выход из положения?
Заранее благодарен
Amstel,
Вы можете попробовать реализовать следующий подход.
В инициализационной секции перед функцией vuser_init() можно проводить объявление глобальных переменных и писать тела любых функции. Во время начала работы скрипта все эти данные заносятся в опереатиную памяти и могут быть использованы в других частях скрипта.
Далее в разделе Action() можно строить любую программную логику просто вызывая нужную функцию и передавая ей текущие параметры.
Если у Вас слишком большой набор функций и Вам не удобно писать их все в инициализационном разделе, то можно оформить их в виде библиотеки (как Вы и хотели), а потом подгрузить библиотеку до начала функции vuser_init().
#9
Отправлено 05 мая 2006 - 15:01
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных