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

Фотография

Тестирование web магазина на производительность


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

#1 headshot

headshot

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 29 января 2009 - 15:59

Доброго времени суток коллеги!

Вопрос по Тестированию web магазина на производительность.

Задача поставлена такая:
Пользователи совершают LOGIN под своими учётными записями (login and pass), заходят в товары, помещают в карзину нужные товары, осуществляют заказ и делают LOG OUT!

Суть вопроса:

1. Как лучше организовать срипт?
а - для каждого отдельного пользователя делать новый скрипт с различными логинами и паролями и всё это потом поместить в один сценарий, присвоив каждому скрипту по одному vuser-у?
b - написать один общий скрипт, где каким-то образом будет реализовано всё описанное выше и потом в сценарии каким-то образом распределить vuser-ов по конкретным логинам и паролям?

Впервые просто столкнулся с такой задачей! Подскажите логику тестирования такого рода приложений


2. Как работать в тот момент когда на этапе ПРОИГРЫВАНИЯ скрипта , в момент подтверждения заказа пользователем происходит ошибка, суть которой, в том, что сессия устарела и я получаю эксепшн вида: Exception Details: System.Web.HttpException: The state information is invalid for this page and might be corrupted
  • 0

#2 Troubleshooter

Troubleshooter

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

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

Отправлено 29 января 2009 - 17:11

Лучше использовать вариант а, для каждой группы юзеров будет отдельный скрипт. Каждая группа ваших пользователей должна имплементировать нагрузочную модель (workload model), тоесть предполагаемый сценарий поводения людей в магазине. Детально все описано здесь. И главное, стройте реалистичные сценарии, 80% ваших пользователей ничего в корзину добавлять не будут они, а будут просто просматривать информацию.

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

#3 headshot

headshot

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 30 января 2009 - 09:09

Atomic_A@ukr.net, большое вам спасибо за ссылку, то что мне нужно!

А может быть подскажете как быть с пунктом два моего вопроса:

Как работать в тот момент когда на этапе ПРОИГРЫВАНИЯ скрипта , в момент подтверждения заказа пользователем происходит ошибка, суть которой, в том, что сессия устарела и я получаю эксепшн вида: Exception Details: System.Web.HttpException: The state information is invalid for this page and might be corrupted
  • 0

#4 Troubleshooter

Troubleshooter

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

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

Отправлено 30 января 2009 - 09:26

Как работать в тот момент когда на этапе ПРОИГРЫВАНИЯ скрипта , в момент подтверждения заказа пользователем происходит ошибка, суть которой, в том, что сессия устарела и я получаю эксепшн вида: Exception Details: System.Web.HttpException: The state information is invalid for this page and might be corrupted

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

Относительно вашей ошибки, я уверен что это не есть ошибка експайра сессии: http://support.microsoft.com/kb/812399
  • 0

#5 headshot

headshot

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 30 января 2009 - 10:08

такая ошибка возникает именно на действии нажатия на кнопку Finish Order , а так же на действии Log out , по этому я сделал вывод, что дело в ошибке експайра сессии, да и девелоперы сказали что дело в этом.

В частности я получаю такие ошибки про прогоне скрипта:

Action.c(136): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://localhost/res...my orders.aspx" [MsgId: MERR-26612]
Action.c(136): Error -26377: No match found for the requested parameter "Siebel_Analytic_ViewState7". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 3056 bytes, use web_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377]
Action.c(136): web_submit_data("my%20orders.aspx") highest severity level was "ERROR", 7459 body bytes, 426 header bytes [MsgId: MMSG-26388]

vuser_end.c(4): web_submit_data("profile%20page.aspx") highest severity level was "ERROR", 7324 body bytes, 426 header bytes [MsgId: MMSG-26388]
  • 0

#6 Troubleshooter

Troubleshooter

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

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

Отправлено 30 января 2009 - 10:28

В частности я получаю такие ошибки про прогоне скрипта:

Action.c(136): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://localhost/res...my orders.aspx" [MsgId: MERR-26612]
Action.c(136): Error -26377: No match found for the requested parameter "Siebel_Analytic_ViewState7". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 3056 bytes, use web_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377]
Action.c(136): web_submit_data("my%20orders.aspx") highest severity level was "ERROR", 7459 body bytes, 426 header bytes [MsgId: MMSG-26388]

vuser_end.c(4): web_submit_data("profile%20page.aspx") highest severity level was "ERROR", 7324 body bytes, 426 header bytes [MsgId: MMSG-26388]

http://loadrunnertnt...ested-parameter
  • 0

#7 headshot

headshot

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 30 января 2009 - 10:40

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

Atomic_A@ukr.net , спасибо вам за толковые ответы!
  • 0

#8 Dmitry_NJ

Dmitry_NJ

    Консультант

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

Отправлено 31 января 2009 - 05:27

Жаль, что в официальных мануалах этому вопросу совершенно не уделяется внимания, лишь сухая теория...

Учить что такое корреляция (автоматическая и ручная), как с ней работать и пр. это не дело мануалов. Мануал по VuGen и так почти полторы тысячи страниц, куда его еще то раздувать? То, что вам нужно, детально рассматривается в курсе "VuGen scripting for the Web", который стоило бы посетить, если есть такая возможность.
  • 0
Дмитрий Шевченко

HP Software

#9 headshot

headshot

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 05 февраля 2009 - 10:05

Dmitry_NJ, расскажите пожалуйста об этом курсе подробней (где и как его можно пройти) или дайте ссылку на подробную информацию, это действительно очень нужно. Спасибо!
  • 0

#10 Dmitry_NJ

Dmitry_NJ

    Консультант

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

Отправлено 05 февраля 2009 - 21:25

Dmitry_NJ, расскажите пожалуйста об этом курсе подробней (где и как его можно пройти) или дайте ссылку на подробную информацию, это действительно очень нужно. Спасибо!

Информацию по LR курсам, доступным на сегодняшний день, можно посмотреть вот здесь: http://h20546.www2.h...amp;sitepick=US

Где, как и какие из этих курсов можно пройти в вашей стране, я, разумеется, знать не могу. Надо связываться с вашим локальным офисом HP (или с кем-нибудь из партнеров) и узнавать детали у них. Если вы из России, то могу дать прямой контакт менеджера из московского офиса HP, который специализируется на ex-Mercury продуктах (пишите в личку).
  • 0
Дмитрий Шевченко

HP Software

#11 headshot

headshot

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 17 февраля 2009 - 11:03

Касаясь, описанной выше проблемы, понял , что нужна параметризация.
Но вот на что обратил внимание, при записи заполнения формы, вижу следующее

web_custom_request("contact.aspx",
"URL=http://mysite/contact.aspx",
"Method=POST",
"Resource=0",
"RecContentType=text/plain",
"Referer=http://mysite/contact.aspx",
"Snapshot=t6.inf",
"Mode=HTML",
"EncType=application/x-www-form-urlencoded; charset=utf-8",
"Body=ScriptManager=ctl02%24ctl05%24updPanel%7Cctl02%24ctl05%24txtFirstName&__EVENTTARGET=ctl02%24ctl05%24txtFirstName&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE={Siebel_Analytic_ViewState6_URL}&slHeader%24slSearch%24txtInputField=Find%20a%20product&ctl02%24ctl05%24title=rbtMs&ctl02%24ctl05%24txtFirstName=Dima&ctl02%24ctl05%24txtLastName=&ctl02%24ctl05%24txtAddress=&ctl02%24ctl05%24txtHn=&ctl02%24ctl05%24txtZip=&ctl02%24ctl05%24txtCity=&ctl02%24ctl05%24txtTelephone=&ctl02%24ctl05%24txtFax=&"
"ctl02%24ctl05%24txtEmail=&ctl02%24ctl05%24txtComments=&focus=ctl02%24ctl05%24txtLastName&slFooter%24slNewsletter%24txtNewsletter=Fill%20in%20your%20email%20address%20here&__EVENTVALIDATION=%2FwEWEwKPgeb%2FAQLcstaTDAKwnOrRCwLk5av1CgLr5av1CgK43LPpDQL4pbyODALk07vkAgKjhYf3BgLFn4HYDwLIn9nwAgK19t7ICgKf9o2CDgLAn4ndBQKB47X%2FCwKKraj8CgLc1ISzDgKYgs3yBgKbraSjCnAq70Of1wFNWpgi7e5OKunpOdlE&",
EXTRARES,
"Url=/ScriptResource.axd?d=AAXALrF0rXM0Y1gzrkWaAcvXNyplz-fRDkMPyHiFwNCkkPvs1g7tir3CdDLf_DFy0&t=633540793851308336", ENDITEM,
"Url=/images/cnb/decor/V.gif", ENDITEM,
LAST);

и так для каждого поля формы!!! - что при реплее вызывает ошибку 26612

Не могли бы вы пояснить:
1. Почему введённые данные с формы, LR записывает вот в таком вот виде (кусок кода выше)
2. Не могу понять в данной ситуации, какой аргумент мне нужно параметризовать. ID нужного мне филда ctl02%24ctl05%24txtFirstName ....но вот что значит всё остальное я не могу понять
3. Имеет ли значение в данном случае Recording Level ? Объясните разницу на примере между HTML-based script и URL-based script? так как я понял , из документации, что это имеет значение для кореляции
  • 0

#12 headshot

headshot

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 06 марта 2009 - 09:30

Неужели никто так ничего и не скажет?
  • 0

#13 Troubleshooter

Troubleshooter

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

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

Отправлено 06 марта 2009 - 10:11

Неужели никто так ничего и не скажет?


Все что нужно было уже в принципе вам сказали, нужна параметризация. В вашем коде выше явно видно что сабмитится view state, который нужно коррелировать. Почему именно так происходит - почитайте как работает ASP.NET и что такое view state и как с ним работать.
Практически все елементы которые у вас находятся в Body необходимо коррелировать: ScriptManager, EVENTTARGET, VIEWSTATE, EVENTVALIDATION.

Принципиального значения в данном случае recording level не имеет, просто в URL моде ваш скрипт будет значительно большим и я бы советовал вам использовать HTML level.

Вам нужно понять что вы сабмитите выполняя запрос, желательно визуализировать, так будет проще. Для этого запишите ваш запрос с помощью badboy, сделайте експорт скрипта в Jmeter и посмотрите что сабмитится при вашем запросе. Удобство в том, что в Jmeter каждый параметр будет отдельно идентифицирован, что поможет разобраться что именно нужно коррелировать.
  • 0

#14 Jackie

Jackie

    Постоянный участник

  • Members
  • PipPipPip
  • 206 сообщений
  • Город:Москва

Отправлено 10 марта 2009 - 15:21

Неужели никто так ничего и не скажет?


Попробуй поюзать WEB Click & Script или Ajax Click & Script протоколы.
Если они не отработают, Бог в помощь - придется коррелировать каждый вьюстейт.
  • 0


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

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