stack overflow in script in LoadRunner
#1
Отправлено 15 сентября 2008 - 14:58
Использую LoadRunner 9.10 AJAX protocol на GUI уровне.
Придолгом исполнении скрипта при нагрузке выскакивает следующая ошибка:
Action.c(18): Warning -26295: JavaScript error in line 1: stack overflow in script [MsgId: MWAR-26295]
Action.c(18): Error: C interpreter run time error: Action.c (18): Error -- memory violation : Exception ACCESS_VIOLATION received. [MsgId: MERR-19890]
Action.c(18): Notify: CCI trace: Action.c(18): web_browser(0x013f5fd6 "{URL}", 0x013f5fca "DESCRIPTION", 0x013f5fc3 "ACTION", 0x013f5fb4 "Navigate={URL}", 0x013f5faf "LAST")
. [MsgId: MMSG-19891]
Action.c(18): Notify: CCI trace: Action.c(94): Action()
. [MsgId: MMSG-19891]
Notify: Transaction "Express_00_Application_Open" ended with "Stop" status (Duration: 0.0469). [MsgId: MMSG-16873]
Пробовал увеличивать объем для джаваскриптового стека но все равно ошибка выскакивает. Должен ли я увеличивать бесконечно память под стек для долгих тестов или он должен как то очищаться сам?
#2
Отправлено 16 сентября 2008 - 08:20
#3
Отправлено 17 сентября 2008 - 14:59
#4
Отправлено 17 сентября 2008 - 15:02
ссылка не рабочая
нашел пост)))))))) это мой пост - ответа там нет точного ответа и к конечному решению еще не пришли)
#5
Отправлено 17 сентября 2008 - 15:03
#6
Отправлено 17 сентября 2008 - 15:21
Может быть кто-нибудь знает как этот джаваскриптовый стек чистить?
Забудьте о стеке
Как вам и написали на форуме HP скорее всего ошибка в неправильной или непродуманной реализации вашего кода, и я склоняюсь к мысли что так оно и есть, также я бы еще рассматривал вариант с нехваткой ресурсов.
Вы можете запостить код который находится на 15 - 20 строках вашего скрипта?
#7
Отправлено 18 сентября 2008 - 08:50
Забудьте о стеке
Как вам и написали на форуме HP скорее всего ошибка в неправильной или непродуманной реализации вашего кода, и я склоняюсь к мысли что так оно и есть, также я бы еще рассматривал вариант с нехваткой ресурсов.
Вы можете запостить код который находится на 15 - 20 строках вашего скрипта?
Пожалуйста
lr_start_transaction("Express_00_Application_Open");
web_browser("{URL}",
DESCRIPTION,
ACTION,
"Navigate={URL}",
LAST);
rc = web_element("Portal Login Page",
DESCRIPTION,
"Tag=td",
"Text=Sign on to MaxTrad",
VERIFICATION,
"NotFound=Warning",
LAST);
if(rc == LR_NOT_FOUND){
lr_fail_trans_with_error("open application failed");
return 1;
}
lr_end_transaction("Express_00_Application_Open",LR_AUTO);
{URL}-параметр
#8
Отправлено 19 сентября 2008 - 09:14
web_browser("{URL}",
DESCRIPTION,
ACTION,
"Navigate={URL}",
LAST);
Я не уверен, что вы корректно ипользуете функцию web_browser.
Вы используете функцию web_browser в коде до 15 строки?
#9
Отправлено 19 сентября 2008 - 16:02
Я не уверен, что вы корректно ипользуете функцию web_browser.
Вы используете функцию web_browser в коде до 15 строки?
вот скрипт от самого начала:
Action()
{
int rc;
int rb;
int rErrorPopup;
int rListofRecords;
int k = 1;
lr_save_datetime("%H%M%S", DATE_NOW, "prmTimeStamp");
lr_output_message(lr_eval_string("Timestamp is: {prmTimeStamp}"));
lr_save_string(lr_eval_string("{prmTimeStamp}"), "prmTime");
lr_start_transaction("Express_00_Application_Open");
web_browser("{URL}",
DESCRIPTION,
ACTION,
"Navigate={URL}",
LAST);
rc = web_element("Portal Login Page",
DESCRIPTION,
"Tag=td",
"Text=Sign on to MaxTrad",
VERIFICATION,
"NotFound=Warning",
LAST);
if(rc == LR_NOT_FOUND){
lr_fail_trans_with_error("open application failed");
return 1;
}
И эту функцию web_browser лоад раннер записал сам.
#10
Отправлено 19 сентября 2008 - 16:07
#11
Отправлено 19 сентября 2008 - 17:24
#12
Отправлено 22 сентября 2008 - 15:59
А что вы инвокаете в web_browser ? ваш URL это статический параметр или он изменяется постоянно ?
#13
Отправлено 23 сентября 2008 - 11:51
В коде явных проблем не вижу.
А что вы инвокаете в web_browser ? ваш URL это статический параметр или он изменяется постоянно ?
Вставляю статический параметр.
Я решил поискать проблемму в приложении.
Применил JSLeaksDetector tool и он показал что в приложеннии есть утечка памяти в javascript коде.
Вот ссылка:
http://blogs.msdn.co...aspx#references
А не подскажите ли вы какой есть еще метод определения утечек памяти на клиенской части и как по конкретнее понять где именно она происходит?
#14
Отправлено 23 сентября 2008 - 13:45
В коде явных проблем не вижу.
А что вы инвокаете в web_browser ? ваш URL это статический параметр или он изменяется постоянно ?
Вставляю статический параметр.
Я решил поискать проблемму в приложении.
Применил JSLeaksDetector tool и он показал что в приложеннии есть утечка памяти в javascript коде.
Вот ссылка:
http://blogs.msdn.co...aspx#references
А не подскажите ли вы какой есть еще метод определения утечек памяти на клиенской части и как по конкретнее понять где именно она происходит?
Тул который вы используете должен указывать участки JS где происхожит утечка памяти.
Обратите внимание ваших девелоперов что есть такая ситуация, они должны понять где бок.
#15
Отправлено 21 января 2009 - 16:01
#16
Отправлено 12 февраля 2009 - 09:55
Теперь он появился через 2 часа нагрузки, используя 3 load generators для 12 юзеров. (((((
#17
Отправлено 23 марта 2009 - 12:21
Было замечено что при нагрузке процесс mmdrv.exe постоянно возрастал и stack overflow выпадал когда выделение памяти под этот процесс достигало 1.5 гигабайта. Рост памяти под этот процесс из-за того что в Run-time settings >> Browser Emulation галочка "simulate a new user on each iteration" была чекнута.
Решение:
Отчекнуть "simulate a new user on each iteration". Получается что память процесс постоянно не растет и stack overflow не появляется!!!
Прикрепленные файлы
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных