Корреляция
#1
Отправлено 28 сентября 2011 - 18:32
Начну с полученного ответа, нужное значение я вижу в результате отработки скрипта, в разделе 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. А как ее использовать для обработки именно полученного ответа?
#3
Отправлено 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>
#4
Отправлено 29 сентября 2011 - 12:02
Посмотрите здесь.
PS
web_reg_save_param использует ReplayLog, а не Generation Log
Но к сожалению, я не вижу ответа от сервера в Replay Log (хотя ответ должен приходить, потому что создается некий документ, и должен возвращаться его номер). Быть может где то настраивается уровень логирования Replay Log?
#5
Отправлено 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_initvuser_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>...
???
#6
Отправлено 29 сентября 2011 - 14:44
Посмотрите здесь.
PS
web_reg_save_param использует ReplayLog, а не Generation Log
Но к сожалению, я не вижу ответа от сервера в Replay Log (хотя ответ должен приходить, потому что создается некий документ, и должен возвращаться его номер). Быть может где то настраивается уровень логирования Replay Log?
Вызовите RunTimeSetting (F4), там есть Log. В нем выберите Extended log и включите то, что хотите видеть в логе.
#7
Отправлено 29 сентября 2011 - 16:41
web_reg_save_param("DocNum", "LB=<Number>", "RB=</Number>", "Search=body", LAST);
а каким образом мне указать значение этой переменной (DocNum) вместо "326960" уже в следующем запросе?
<Number>"значение переменной DocNum"</Number>...
и нужно ли объявлять переменную DocNum?
#8
Отправлено 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
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных