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

Фотография

Запись скриптов в LR


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

#1 Lampa

Lampa

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Lampa

Отправлено 02 марта 2012 - 04:20

Запись скриптов в LR.
Добрый день всем, я начинающий тестировщик...
Часто приходится нагружать веб, хотелось бы получше разобраться в вопросе, как правильно записывать скрипты, и как это может влиять на результаты нагрузки.
1. я сейчас использую простой способ с авторизацией одного виртуального пользователя и записью одноо скрипта(и дальше эмулируется работа 50-100), а если входить будут 50 виртуальных пользователей и выполнять один и тот же сценарий, как это может повлиять например на время отклика? Или правильнее делать, что будут входить 50 пользователей и у каждого из них будет свой сценарий.
2. При записи скрипта робот сам расставляет задержки внтури транзакций (ну видимо то время которое реально было потрачено на загрузку каких либо компонентов), далее я ручками удаляю эти задержки и проставляю их перед транзакцией (для того чтобы замерить время отклика конкретной операции), например, по 10 сек. Или все таки нужно учитывать то время которое записывал робот.
Заранее спасибо.
  • 0

#2 Куатор

Куатор

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

  • Members
  • PipPipPip
  • 247 сообщений
  • ФИО:Комендантов Илья
  • Город:Украина, Одесса

Отправлено 02 марта 2012 - 08:05

Запись скриптов в LR.
Добрый день всем, я начинающий тестировщик...
Часто приходится нагружать веб, хотелось бы получше разобраться в вопросе, как правильно записывать скрипты, и как это может влиять на результаты нагрузки.
1. я сейчас использую простой способ с авторизацией одного виртуального пользователя и записью одноо скрипта(и дальше эмулируется работа 50-100), а если входить будут 50 виртуальных пользователей и выполнять один и тот же сценарий, как это может повлиять например на время отклика? Или правильнее делать, что будут входить 50 пользователей и у каждого из них будет свой сценарий.
2. При записи скрипта робот сам расставляет задержки внтури транзакций (ну видимо то время которое реально было потрачено на загрузку каких либо компонентов), далее я ручками удаляю эти задержки и проставляю их перед транзакцией (для того чтобы замерить время отклика конкретной операции), например, по 10 сек. Или все таки нужно учитывать то время которое записывал робот.
Заранее спасибо.

Привет!
Стоит всё-таки начать с основ, что такое параметризация.. зачем она нужна в скриптах.. У вас бизнес задачи какие? Какие пути следования пользователей по сайту? Сделайте несколько скриптов с разными сценариями, параметризируйте их и вперёд.. Также играет роль время нагрузки (если вы грузите реальную систему).. загрузка сети в разное время - разная.
По второму вопросу.. тут вообще либо я не понял описания, либо какая-то путаница.. что такое think time более-менее понятно? Если нет, тогда стоит поискать материал по этому вопросу. Чтобы замерить время отклика конкретной операции не нужно проставлять задержки перед транзакциями..
:friends:
  • 0
Идеальный тестировщик - человек с золотыми руками, растущими из ж...

#3 Lampa

Lampa

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Lampa

Отправлено 02 марта 2012 - 10:16

Возможно формулировка моих вопросов не очень корректная, поэтому я и залезла на форум пообщаться с умными людьми. Попробую по другому спросить..
1. Вопрос в том стоит ли тратить время на параметризацию и запись нескольких скриптов, или не париться и записывать один скрипт и использовать одного виртуального пользователя. Мне просто сейчас интересно эмулируется одинаковая нагрузка на приложение в 1-м и во 2-м случае?
2. Как грамотно пользоваться задержками между транзакциями.
3. Я так понимаю основная характеристика при оценке производительности приложения - это время отклика операции, вот и соотвественно надо же как то выявлять эти проблемы. Т.е если я вижу высокое время отклика на какой то операции, я делаю выводы что нужно оптимизировать запрос. Отсюда и вытекают вопросы а правильно ли я записываю скрипт, я правильно ли я расставляю задержки. Т.е когда записывается скрипт, задержки как раз таки проставляются внутри транзакций и как результат в отчете мы видим очень большое время. Я думаю это может привести к неправильной оценке результа. Вот просветите по этому вопросу. Если я ошибаюсь, то поправьте.
  • 0

#4 Куатор

Куатор

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

  • Members
  • PipPipPip
  • 247 сообщений
  • ФИО:Комендантов Илья
  • Город:Украина, Одесса

Отправлено 02 марта 2012 - 11:06

1. Вопрос в том стоит ли тратить время на параметризацию и запись нескольких скриптов, или не париться и записывать один скрипт и использовать одного виртуального пользователя. Мне просто сейчас интересно эмулируется одинаковая нагрузка на приложение в 1-м и во 2-м случае?

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

2. Как грамотно пользоваться задержками между транзакциями.

В моём понимании вводить искусственные задержки между транзакциями вообще не нужно, а зачем?
Время выполнения транзакции - обычно это и есть та характеристика, которую пытаются получить при нагрузочном тестировании. Нет, ну плюс ряд других конечно, но ни одна из них не является временем между транзакциями.

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

Вот ситуация, вы убираете задержки в транзакциями, нагружаете 1к пользователями и сервер загибается. Проблема? - Проблема!
Запускаете 1к реальных пользователей - сервер подгружен.. но справляется.. почему? Потому что реальный пользователь не может нажать на объект, который он ещё не видит.. а ЛР - легко! Если убрать естесственные задержки, ЛР может оооочень быстро слать запросы на сервер (собственно DDos-ить), это ж программа.
Далее разовьём ситуацию - у вас на сайте могут быть постоянные пользователи (давног к вам заходят), они будут работать быстрее (задержка "думания" пользователя следовательно - ниже), а есть новенькие, которые тоже делают эти действия, но задержка у них выше.. пока прочитают текст, пока поймут куда им жать и прочея. Поэтому выше я писал о необходимости создавать скрипты с разными "ролями".
Как-то так.. много нюансов, но в принципе.. более-менее подробно :) Если чего не понятно, уточняй.. вдруг я чем помогу.. может и эксперты подтянутся ;)
  • 0
Идеальный тестировщик - человек с золотыми руками, растущими из ж...

#5 SergeyP

SergeyP

    Специалист

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

Отправлено 02 марта 2012 - 11:15

.... далее я ручками удаляю эти задержки ....

В этом нет необходимости: достаточно для сценария в контроллере в Run-Time Setting for Script в разделе ThinkTime выбрать Ignore think time (по аналогии с настройками для скрипта в Virtual User Generator).
Тогда все задержки скрипта будут игнорироваться при выполнении сценария в контроллере.
  • 0

#6 Куатор

Куатор

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

  • Members
  • PipPipPip
  • 247 сообщений
  • ФИО:Комендантов Илья
  • Город:Украина, Одесса

Отправлено 02 марта 2012 - 11:21

Можно любые задержки автоматически ограничить одним значением.. можно сделать их рэндомными из определённого диапазона.. но это нужно применять ,когда вы понимаете зачем вы это делаете )
  • 0
Идеальный тестировщик - человек с золотыми руками, растущими из ж...

#7 Lampa

Lampa

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Lampa

Отправлено 05 марта 2012 - 04:23


.... далее я ручками удаляю эти задержки ....

В этом нет необходимости: достаточно для сценария в контроллере в Run-Time Setting for Script в разделе ThinkTime выбрать Ignore think time (по аналогии с настройками для скрипта в Virtual User Generator).
Тогда все задержки скрипта будут игнорироваться при выполнении сценария в контроллере.


А какая у Вас версия LR?
Я так понимаю задержки, все такие нужны, нам же нужно сэмулировать боле-менее реальную работу пользователей. Другое дело, что если их не убирать из тела транзакций, в отчете получается большое время отклика, поэтому я их и выношу за рамки транзакции. И как по Вашему нужно замерять время отклика конкретной операции, может еще какие то возможности инструмента есть?
  • 0

#8 Lampa

Lampa

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Lampa

Отправлено 05 марта 2012 - 05:45

Еще такой вопрос.
Во время работы скрипта возникают ошибки:
Action.c(219): Error – 27995: Requested link (“Text = Поиск”) not found
В скрипте строка, на которой падает данная ошибка, выглядит следующим образом:

web_link("Поиск",
"Text=Поиск",
"Snapshot=t5.inf",
LAST);

Решение проблемы: необходимо перезаписать скрипт так, чтобы нажатие на ссылку записывалось в другом виде, например,

web_url("index.php_2",
"URL=http://хххххх-ххх.ххххххх.хх/ххх/index.php?show=bill_search",
"Resource=0",
"RecContentType=text/html",
"Referer=http://хххххх-ххх.ххххххх.хх/ххх/index.php?",
"Snapshot=t3.inf",
"Mode=HTML",
LAST);

return 0;
Кто то может уже разбирался с такой проблемой, в чем принципиальное отличие 1-го способа от второго. Почему в первом случае падают ошибки при прогоне скрипта, а во втором нет. Или это косяк LR?
  • 0

#9 Alex

Alex

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

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 05 марта 2012 - 08:21

Еще такой вопрос.
Во время работы скрипта возникают ошибки:
Action.c(219): Error – 27995: Requested link (“Text = Поиск”) not found
В скрипте строка, на которой падает данная ошибка, выглядит следующим образом:

web_link("Поиск",
"Text=Поиск",
"Snapshot=t5.inf",
LAST);

Решение проблемы: необходимо перезаписать скрипт так, чтобы нажатие на ссылку записывалось в другом виде, например,

web_url("index.php_2",
"URL=http://хххххх-ххх.ххххххх.хх/ххх/index.php?show=bill_search",
"Resource=0",
"RecContentType=text/html",
"Referer=http://хххххх-ххх.ххххххх.хх/ххх/index.php?",
"Snapshot=t3.inf",
"Mode=HTML",
LAST);

return 0;
Кто то может уже разбирался с такой проблемой, в чем принципиальное отличие 1-го способа от второго. Почему в первом случае падают ошибки при прогоне скрипта, а во втором нет. Или это косяк LR?


в качестве одной из причин может быть отсутствие опции "Ковертировать в/из UTF-8". При выключенной опции LoadRunner не может найти русский текст в ответе сервера. Принципиальная разница, как мне кажется (но точно не уверен), в том, что web_link заставляет LoadRunner найти в тексте ответа ссылку с указанным текстом, распарсить ее, определив ее url и выполнить собственно тот же web_url с полученным адресом. Т.е., в одном случае LoadRunner сам выдергивает URL из ответа сервера, а во втором нужно самостоятельно указать адрес. Какой вариант удобнее, это уже философский вопрос.

По опции конвертирования, она включается в Run-time settings (вложение)

Прикрепленные файлы

  • Прикрепленный файл  05.03.png   43,24К   20 Количество загрузок:

  • 0


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

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