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

Фотография

stack overflow in script in LoadRunner


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

#1 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 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]


Пробовал увеличивать объем для джаваскриптового стека но все равно ошибка выскакивает. Должен ли я увеличивать бесконечно память под стек для долгих тестов или он должен как то очищаться сам?
  • 0

#2 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 16 сентября 2008 - 08:20

http://forums11.itrc...hreadId=1269111
  • 0

#3 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 17 сентября 2008 - 14:59

http://forums11.itrc...hreadId=1269111


ссылка не рабочая
  • 0

#4 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 17 сентября 2008 - 15:02

http://forums11.itrc...hreadId=1269111


ссылка не рабочая


нашел пост)))))))) это мой пост - ответа там нет точного ответа и к конечному решению еще не пришли)
  • 0

#5 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 17 сентября 2008 - 15:03

Может быть кто-нибудь знает как этот джаваскриптовый стек чистить?
  • 0

#6 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 17 сентября 2008 - 15:21

Может быть кто-нибудь знает как этот джаваскриптовый стек чистить?


Забудьте о стеке :smile:
Как вам и написали на форуме HP скорее всего ошибка в неправильной или непродуманной реализации вашего кода, и я склоняюсь к мысли что так оно и есть, также я бы еще рассматривал вариант с нехваткой ресурсов.
Вы можете запостить код который находится на 15 - 20 строках вашего скрипта?
  • 0

#7 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 18 сентября 2008 - 08:50

Забудьте о стеке :smile:
Как вам и написали на форуме 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}-параметр
  • 0

#8 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 19 сентября 2008 - 09:14

web_browser("{URL}",
DESCRIPTION,
ACTION,
"Navigate={URL}",
LAST);


Я не уверен, что вы корректно ипользуете функцию web_browser.
Вы используете функцию web_browser в коде до 15 строки?
  • 0

#9 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 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 лоад раннер записал сам.
  • 0

#10 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 19 сентября 2008 - 16:07

И хотел подчеркнуть эта ошибка появляется в разных местах не только на этой функции, и не сразу а после некоторого времени прогона скрипта.
  • 0

#11 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 19 сентября 2008 - 17:24

а может ли это быть из-за того что я не закрывал браузер, а только открывал?
  • 0

#12 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 22 сентября 2008 - 15:59

В коде явных проблем не вижу.
А что вы инвокаете в web_browser ? ваш URL это статический параметр или он изменяется постоянно ?
  • 0

#13 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 23 сентября 2008 - 11:51

В коде явных проблем не вижу.
А что вы инвокаете в web_browser ? ваш URL это статический параметр или он изменяется постоянно ?


Вставляю статический параметр.

Я решил поискать проблемму в приложении.
Применил JSLeaksDetector tool и он показал что в приложеннии есть утечка памяти в javascript коде.

Вот ссылка:
http://blogs.msdn.co...aspx#references

А не подскажите ли вы какой есть еще метод определения утечек памяти на клиенской части и как по конкретнее понять где именно она происходит?
  • 0

#14 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 23 сентября 2008 - 13:45

В коде явных проблем не вижу.
А что вы инвокаете в web_browser ? ваш URL это статический параметр или он изменяется постоянно ?


Вставляю статический параметр.

Я решил поискать проблемму в приложении.
Применил JSLeaksDetector tool и он показал что в приложеннии есть утечка памяти в javascript коде.

Вот ссылка:
http://blogs.msdn.co...aspx#references

А не подскажите ли вы какой есть еще метод определения утечек памяти на клиенской части и как по конкретнее понять где именно она происходит?


Тул который вы используете должен указывать участки JS где происхожит утечка памяти.
Обратите внимание ваших девелоперов что есть такая ситуация, они должны понять где бок.
  • 0

#15 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 21 января 2009 - 16:01

Решение было найдено при помощи HP поддержки. Проблема была в лоад раннере, необходимо было нагружать используя несколько load generators, получилось что приложенние было очень сложное, скрипт очень большим и в сумме один load generator не выдерживал.
  • 0

#16 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 12 февраля 2009 - 09:55

Stack overflow is coming back!!! :dirol: :help: :crazy:

Теперь он появился через 2 часа нагрузки, используя 3 load generators для 12 юзеров. (((((
  • 0

#17 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 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 гостей, 0 анонимных