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

Фотография

Корреляция


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

#1 uhazhor

uhazhor

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

  • Members
  • Pip
  • 36 сообщений
  • ФИО:uhazhor

Отправлено 28 сентября 2011 - 18:32

у меня Load runner 11, у меня возник вопрос при создании скрипта нагрузочного тестирования... тестируемая функциональность состоит из двух частей: в первой части нужно получить значение, а второй части передать. Т.е. изъять значение, положить в переменную для дальнейшего его использования.
Начну с полученного ответа, нужное значение я вижу в результате отработки скрипта, в разделе Generation Log.

$$$$$$ Response Header For Transaction With Id 827 Ended $$$$$$

****** Response Body For Transaction With Id 827 ******
<?xml version="1.0" encoding="utf-8"?><componentDocuments xmlns:xsi="http://www.w3.org/20...chema-instance" xmlns:xsd="http://www.w3.org/20...mponentDocument Version="3.0" HandlesDeclears="false"><header><flow ID="StandardFlow" nodeID="ShowScreen" flowInstanceID="41352385-c39e-442a-b86c-ef2717e59066" flowInstanceCount="40" flowPersistenceID="">\.... <Date>31/08/2011</Date><Number>326960</Number>...

А как изъять из полученного ответа значение "326960" и поместить в переменную? Если я не ошибаюсь то существует функция - web_reg_save_param. А как ее использовать для обработки именно полученного ответа?
  • 0

#2 SergeyP

SergeyP

    Специалист

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

Отправлено 29 сентября 2011 - 02:04

Посмотрите здесь.

PS
web_reg_save_param использует ReplayLog, а не Generation Log
  • 0

#3 AxelM

AxelM

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

  • Members
  • PipPip
  • 118 сообщений
  • ФИО:Зверев Дмитрий
  • Город:Санкт-Петербург


Отправлено 29 сентября 2011 - 04:53

у меня Load runner 11, у меня возник вопрос при создании скрипта нагрузочного тестирования... тестируемая функциональность состоит из двух частей: в первой части нужно получить значение, а второй части передать. Т.е. изъять значение, положить в переменную для дальнейшего его использования.
Начну с полученного ответа, нужное значение я вижу в результате отработки скрипта, в разделе Generation Log.

$$ Response Header For Transaction With Id 827 Ended $$

****** Response Body For Transaction With Id 827 ******
<?xml version="1.0" encoding="utf-8"?><componentDocuments xmlns:xsi="http://www.w3.org/20...chema-instance" xmlns:xsd="http://www.w3.org/20...mponentDocument Version="3.0" HandlesDeclears="false"><header><flow ID="StandardFlow" nodeID="ShowScreen" flowInstanceID="41352385-c39e-442a-b86c-ef2717e59066" flowInstanceCount="40" flowPersistenceID="">\.... <Date>31/08/2011</Date><Number>326960</Number>...

А как изъять из полученного ответа значение "326960" и поместить в переменную? Если я не ошибаюсь то существует функция - web_reg_save_param. А как ее использовать для обработки именно полученного ответа?


Например, я делаю так:

vuser_init
vuser_init()
{
	int status;

	//Создаем сессию и передаем SESSION_ID в Action();


	web_reg_save_param("OpenSession", "LB=", "RB=", "Search=body", LAST);

	status = web_url("OpenSession",
				     "URL={has_settings}/OPEN_SESSION?LOGIN=bla-bla&PASSWORD=bla-bla",
				     "Resource=0",
				     "Referer=",
				     "RecContentType=text/xml",
				     LAST);

	if (status == LR_PASS) {
		lr_log_message("***** STATUS OpenSession: %d *****",status);
		// Парсим XML и получаем из него SESSION_ID
		lr_xml_get_values("Xml={OpenSession}", 
					  	"Query=SESSION_ID", 
					  	"ValueParam=ParamSessionId", 
					  	LAST); 

	lr_log_message(lr_eval_string("***** SESSION_ID = {ParamSessionId} *****"));
	}
	else {
		lr_error_message("Error in OpenSession at iteration #%s", lr_eval_string ("{iteration}")); 
		lr_exit(LR_EXIT_VUSER, LR_FAIL);
	}

<skip>


Action

<skip>
status = web_url("TST_DYN_CACHE_GET_BY_MSISDN",
		"URL={has_settings}/TST_DYN_CACHE_GET_BY_MSISDN?SESSION_ID={ParamSessionId}&CHANNEL=WWW&MSISDN=6660000000",
		"Resource=0",
		"Referer=",
		"RecContentType=text/xml",
		LAST
	);
<skip>

  • 0

#4 uhazhor

uhazhor

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

  • Members
  • Pip
  • 36 сообщений
  • ФИО:uhazhor

Отправлено 29 сентября 2011 - 12:02

Посмотрите здесь.

PS
web_reg_save_param использует ReplayLog, а не Generation Log


Но к сожалению, я не вижу ответа от сервера в Replay Log (хотя ответ должен приходить, потому что создается некий документ, и должен возвращаться его номер). Быть может где то настраивается уровень логирования Replay Log?
  • 0

#5 uhazhor

uhazhor

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

  • Members
  • Pip
  • 36 сообщений
  • ФИО:uhazhor

Отправлено 29 сентября 2011 - 12:08


у меня Load runner 11, у меня возник вопрос при создании скрипта нагрузочного тестирования... тестируемая функциональность состоит из двух частей: в первой части нужно получить значение, а второй части передать. Т.е. изъять значение, положить в переменную для дальнейшего его использования.
Начну с полученного ответа, нужное значение я вижу в результате отработки скрипта, в разделе Generation Log.

$$ Response Header For Transaction With Id 827 Ended $$

****** Response Body For Transaction With Id 827 ******
<?xml version="1.0" encoding="utf-8"?><componentDocuments xmlns:xsi="http://www.w3.org/20...chema-instance" xmlns:xsd="http://www.w3.org/20...mponentDocument Version="3.0" HandlesDeclears="false"><header><flow ID="StandardFlow" nodeID="ShowScreen" flowInstanceID="41352385-c39e-442a-b86c-ef2717e59066" flowInstanceCount="40" flowPersistenceID="">\.... <Date>31/08/2011</Date><Number>326960</Number>...

А как изъять из полученного ответа значение "326960" и поместить в переменную? Если я не ошибаюсь то существует функция - web_reg_save_param. А как ее использовать для обработки именно полученного ответа?


Например, я делаю так:

vuser_init
vuser_init()
{
	int status;

	//Создаем сессию и передаем SESSION_ID в Action();


	web_reg_save_param("OpenSession", "LB=", "RB=", "Search=body", LAST);

	status = web_url("OpenSession",
				     "URL={has_settings}/OPEN_SESSION?LOGIN=bla-bla&PASSWORD=bla-bla",
				     "Resource=0",
				     "Referer=",
				     "RecContentType=text/xml",
				     LAST);

	if (status == LR_PASS) {
		lr_log_message("***** STATUS OpenSession: %d *****",status);
		// Парсим XML и получаем из него SESSION_ID
		lr_xml_get_values("Xml={OpenSession}", 
					  	"Query=SESSION_ID", 
					  	"ValueParam=ParamSessionId", 
					  	LAST); 

	lr_log_message(lr_eval_string("***** SESSION_ID = {ParamSessionId} *****"));
	}
	else {
		lr_error_message("Error in OpenSession at iteration #%s", lr_eval_string ("{iteration}")); 
		lr_exit(LR_EXIT_VUSER, LR_FAIL);
	}

<skip>


Action

<skip>
status = web_url("TST_DYN_CACHE_GET_BY_MSISDN",
		"URL={has_settings}/TST_DYN_CACHE_GET_BY_MSISDN?SESSION_ID={ParamSessionId}&CHANNEL=WWW&MSISDN=6660000000",
		"Resource=0",
		"Referer=",
		"RecContentType=text/xml",
		LAST
	);
<skip>


Допустим, если у меня отработает
web_reg_save_param("DocNum", "LB=<Number>", "RB=</Number>", "Search=body", LAST);

то каким образом мне указать эту переменную (DocNum) вместо "326960" уже в следующем запросе:
<Number>326960</Number>...

???
  • 0

#6 SergeyP

SergeyP

    Специалист

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

Отправлено 29 сентября 2011 - 14:44


Посмотрите здесь.

PS
web_reg_save_param использует ReplayLog, а не Generation Log


Но к сожалению, я не вижу ответа от сервера в Replay Log (хотя ответ должен приходить, потому что создается некий документ, и должен возвращаться его номер). Быть может где то настраивается уровень логирования Replay Log?


Вызовите RunTimeSetting (F4), там есть Log. В нем выберите Extended log и включите то, что хотите видеть в логе.
  • 0

#7 uhazhor

uhazhor

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

  • Members
  • Pip
  • 36 сообщений
  • ФИО:uhazhor

Отправлено 29 сентября 2011 - 16:41

Я получу значение и положу в переменную DocNum
web_reg_save_param("DocNum", "LB=<Number>", "RB=</Number>", "Search=body", LAST);

а каким образом мне указать значение этой переменной (DocNum) вместо "326960" уже в следующем запросе?
<Number>"значение переменной DocNum"</Number>...

и нужно ли объявлять переменную DocNum?
  • 0

#8 AxelM

AxelM

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

  • Members
  • PipPip
  • 118 сообщений
  • ФИО:Зверев Дмитрий
  • Город:Санкт-Петербург


Отправлено 30 сентября 2011 - 06:20

Если я правильно понял Ваш вопрос, то смотрите на мое сообщение.
Видите, в Action ParamSessionId передается в фигурных скобках:
"URL={has_settings}/TST_DYN_CACHE_GET_BY_MSISDN?SESSION_ID={ParamSessionId}&CHANNEL=WWW&MSISDN=6660000000",

Это и есть использование переменной. Объявляется она фактически вот тут
lr_xml_get_values("Xml={OpenSession}", 
                                                "Query=SESSION_ID", 
                                       		"ValueParam=ParamSessionId", 
                                                LAST);
Также, советую почитать про переменные в LoadRunner
  • 0


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

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