Цунг <if> заявление или как получить текущую страницу в Цунг?
У меня есть сайт с несколькими переадресациями, ведущими на страницу входа. Количество перенаправлений может варьироваться, и я решил это с помощью:
<transaction name="get_login_page">
<request>
<dyn_variable name="redirect" re="Location: ((http|https)://.*)\r"/>
<http url='/' version='1.1' method='GET'>
</http>
</request>
<repeat name="redirect_loop" max_repeat="5">
<request subst="true">
<dyn_variable name="redirect" re="Location: ((http|https)://.*)\r"/>
<http url="%%_redirect%%" method="GET"></http>
</request>
<until var="redirect" eq=""/>
</repeat>
</transaction>
И с этого момента у меня возникла проблема, потому что на странице входа в систему я должен отправить данные на текущий URL, но после последней итерации переменная "redirect" становится пустой. Я попытался создать дополнительную переменную с условием в цикле, чтобы сохранить последнее непустое значение:
<transaction name="get_login_page">
<request>
<dyn_variable name="redirect" re="Location: ((http|https)://.*)\r"/>
<http url='/' version='1.1' method='GET'>
</http>
</request>
<repeat name="redirect_loop" max_repeat="5">
<request subst="true">
<dyn_variable name="redirect" re="Location: ((http|https)://.*)\r"/>
<if var="redirect" eq=''>
<dyn_variable name="login_url" re="Location: ((http|https)://.*)\r"/>
</if>
<http url="%%_redirect%%" method="GET"></http>
</request>
<until var="redirect" eq=""/>
</repeat>
</transaction>
Но теперь у меня есть ошибка при запуске tsung:
Starting Tsung
"Log directory is: /home/***/login_portal/logs/20141103-0945"
594- fatal: {failed_validation,element_unauthorize_in_choice}
Config Error, aborting ! {{badmatch,
{<<"<arrivalphase phase=\"1\" duration=\"5\" unit=\"second\">\n <users maxnumber=\"1\" arrivalrate=\"1\" unit=\"second\"></users>\n</arrivalphase>\n">>,
{xmerl_sax_parser_state,undefined,
#Fun<xmerl_sax_parser.1.53952608>,
{file_descriptor,prim_file,
{#Port<0.1047>,13}},
#Fun<xmerl_sax_parser.default_continuation_cb.1>,
utf8,1,
[{"xml",
"http://www.w3.org/XML/1998/namespace"}],
[],[],true,69656,no,normal,
"/home/***/login_portal/.",
"tsung_config_load.xml",false}}},
[{xmerl_sax_parser_utf8,handle_external_entity,2,
[{file,"xmerl_sax_parser_utf8.erl"},
{line,1692}]},
{xmerl_sax_parser_utf8,parse_external_entity,3,
[{file,"xmerl_sax_parser_utf8.erl"},
{line,1670}]},
{xmerl_sax_parser_utf8,parse_content,4,
[{file,"xmerl_sax_parser_utf8.erl"},
{line,1157}]},
{xmerl_sax_parser_utf8,parse_document,2,
[{file,"xmerl_sax_parser_utf8.erl"},
{line,179}]},
{xmerl_sax_parser_utf8,parse,2,
[{file,"xmerl_sax_parser_utf8.erl"},
{line,115}]},
{xmerl_sax_parser,file,2,
[{file,"xmerl_sax_parser.erl"},{line,77}]},
{ts_config,read,2,
[{file,"src/tsung_controller/ts_config.erl"},
{line,77}]},
{ts_config_server,handle_call,3,
[{file,
"src/tsung_controller/ts_config_server.erl"},
{line,206}]}]}
Есть ли способ получить последний доступный URL или получить его из модели DOM, используя встроенные функции? Или как мне сделать условие, чтобы оно работало правильно?