DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=40562>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=40562 Summary: https redirects no longer invoke RE post processors Product: JMeter Version: 2.2 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: HTTP AssignedTo: [email protected] ReportedBy: [EMAIL PROTECTED] In JMeter 2.1.1, 403 redirects from https pages could be parsed by regular expression post processors. In JMeter 2.2, the same script seems to skip over the post processor step, leaving the variable as the string ${variable} instead of replacing it with the match or non-match contents. The following script correctly runs the RE extractor in 2.1.1, but not in 2.2. Feel free to trash this login...it's just a spam collector. Only the last (3rd) RE is relevant to the bug. The other two are just to setup the page. Also, this is just a public site I found to test this...please don't run any real load against it. <jmeterTestPlan version="1.1" properties="1.7"> <hashTree> <TestPlan> <elementProp name="TestPlan.user_defined_variables" elementType="org.apache.jmeter.config.Arguments"> <stringProp name="TestElement.gui_class">org.apache.jmeter.config.gui.ArgumentsPanel</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.config.Arguments</stringProp> <collectionProp name="Arguments.arguments"/> <stringProp name="TestElement.name">User Defined Variables</stringProp> <boolProp name="TestElement.enabled">true</boolProp> </elementProp> <stringProp name="TestElement.gui_class">org.apache.jmeter.control.gui.TestPlanGui</stringProp> <stringProp name="TestPlan.user_define_classpath"></stringProp> <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> <stringProp name="TestElement.test_class">org.apache.jmeter.testelement.TestPlan</stringProp> <stringProp name="TestElement.name">Test Plan</stringProp> <boolProp name="TestPlan.functional_mode">false</boolProp> <boolProp name="TestElement.enabled">true</boolProp> <stringProp name="TestPlan.comments"></stringProp> </TestPlan> <hashTree> <ThreadGroup> <longProp name="ThreadGroup.start_time">1158799693000</longProp> <stringProp name="TestElement.test_class">org.apache.jmeter.threads.ThreadGroup</stringProp> <stringProp name="ThreadGroup.delay"></stringProp> <stringProp name="ThreadGroup.duration"></stringProp> <boolProp name="TestElement.enabled">true</boolProp> <stringProp name="ThreadGroup.num_threads">1</stringProp> <boolProp name="ThreadGroup.scheduler">false</boolProp> <stringProp name="TestElement.gui_class">org.apache.jmeter.threads.gui.ThreadGroupGui</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="org.apache.jmeter.control.LoopController"> <stringProp name="TestElement.gui_class">org.apache.jmeter.control.gui.LoopControlPanel</stringProp> <stringProp name="LoopController.loops">1</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.control.LoopController</stringProp> <stringProp name="TestElement.name">Loop Controller</stringProp> <boolProp name="TestElement.enabled">true</boolProp> <boolProp name="LoopController.continue_forever">false</boolProp> </elementProp> <stringProp name="TestElement.name">Thread Group</stringProp> <longProp name="ThreadGroup.end_time">1158799693000</longProp> <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <stringProp name="ThreadGroup.ramp_time">1</stringProp> </ThreadGroup> <hashTree> <HTTPSampler> <stringProp name="HTTPSampler.path">/login.srf</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.protocol.http.sampler.HTTPSampler</stringProp> <stringProp name="HTTPSampler.method">GET</stringProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> <stringProp name="HTTPSampler.protocol">https</stringProp> <boolProp name="TestElement.enabled">true</boolProp> <boolProp name="HTTPSampler.follow_redirects">false</boolProp> <stringProp name="HTTPSampler.port">443</stringProp> <elementProp name="HTTPsampler.Arguments" elementType="org.apache.jmeter.config.Arguments"> <stringProp name="TestElement.gui_class">org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.config.Arguments</stringProp> <collectionProp name="Arguments.arguments"/> <stringProp name="TestElement.name">User Defined Variables</stringProp> <boolProp name="TestElement.enabled">true</boolProp> </elementProp> <stringProp name="HTTPSampler.mimetype"></stringProp> <stringProp name="TestElement.gui_class">org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui</stringProp> <stringProp name="HTTPSampler.FILE_FIELD"></stringProp> <stringProp name="TestElement.name">HTTP Request</stringProp> <stringProp name="HTTPSampler.monitor">false</stringProp> <stringProp name="HTTPSampler.domain">login.live.com</stringProp> <stringProp name="HTTPSampler.FILE_NAME"></stringProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> </HTTPSampler> <hashTree> <RegexExtractor> <stringProp name="RegexExtractor.default">NO_MATCH</stringProp> <stringProp name="TestElement.gui_class">org.apache.jmeter.extractor.gui.RegexExtractorGui</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.extractor.RegexExtractor</stringProp> <stringProp name="RegexExtractor.regex">name="PPFT" id="[^"]+" value="([^"]+)"</stringProp> <stringProp name="TestElement.name">Regular Expression Extractor</stringProp> <boolProp name="TestElement.enabled">true</boolProp> <stringProp name="RegexExtractor.useHeaders">false</stringProp> <stringProp name="RegexExtractor.template">$1$</stringProp> <stringProp name="RegexExtractor.match_number">1</stringProp> <stringProp name="RegexExtractor.refname">ppft</stringProp> </RegexExtractor> <hashTree/> <RegexExtractor> <stringProp name="RegexExtractor.default">NO_MATCH</stringProp> <stringProp name="TestElement.gui_class">org.apache.jmeter.extractor.gui.RegexExtractorGui</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.extractor.RegexExtractor</stringProp> <stringProp name="RegexExtractor.regex">post\.srf\?bk=([^"]+)"</stringProp> <stringProp name="TestElement.name">Regular Expression Extractor</stringProp> <boolProp name="TestElement.enabled">true</boolProp> <stringProp name="RegexExtractor.useHeaders">false</stringProp> <stringProp name="RegexExtractor.template">$1$</stringProp> <stringProp name="RegexExtractor.match_number">1</stringProp> <stringProp name="RegexExtractor.refname">bk</stringProp> </RegexExtractor> <hashTree/> </hashTree> <HTTPSampler> <stringProp name="HTTPSampler.path">/ppsecure/post.srf?bk=${bk}</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.protocol.http.sampler.HTTPSampler</stringProp> <stringProp name="HTTPSampler.method">POST</stringProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> <stringProp name="HTTPSampler.protocol">https</stringProp> <boolProp name="TestElement.enabled">true</boolProp> <boolProp name="HTTPSampler.follow_redirects">false</boolProp> <stringProp name="HTTPSampler.port">443</stringProp> <elementProp name="HTTPsampler.Arguments" elementType="org.apache.jmeter.config.Arguments"> <stringProp name="TestElement.gui_class">org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.config.Arguments</stringProp> <collectionProp name="Arguments.arguments"> <elementProp name="" elementType="org.apache.jmeter.protocol.http.util.HTTPArgument"> <stringProp name="Argument.metadata">=</stringProp> <stringProp name="Argument.value">Passport</stringProp> <boolProp name="HTTPArgument.use_equals">true</boolProp> <stringProp name="Argument.name">PPSX</stringProp> <boolProp name="HTTPArgument.always_encode">false</boolProp> </elementProp> <elementProp name="" elementType="org.apache.jmeter.protocol.http.util.HTTPArgument"> <stringProp name="Argument.metadata">=</stringProp> <stringProp name="Argument.value"></stringProp> <boolProp name="HTTPArgument.use_equals">true</boolProp> <stringProp name="Argument.name">PwdPad</stringProp> <boolProp name="HTTPArgument.always_encode">false</boolProp> </elementProp> <elementProp name="" elementType="org.apache.jmeter.protocol.http.util.HTTPArgument"> <stringProp name="Argument.metadata">=</stringProp> <stringProp name="Argument.value">[EMAIL PROTECTED]</stringProp> <boolProp name="HTTPArgument.use_equals">true</boolProp> <stringProp name="Argument.name">login</stringProp> <boolProp name="HTTPArgument.always_encode">true</boolProp> </elementProp> <elementProp name="" elementType="org.apache.jmeter.protocol.http.util.HTTPArgument"> <stringProp name="Argument.metadata">=</stringProp> <stringProp name="Argument.value">bbbbbb</stringProp> <boolProp name="HTTPArgument.use_equals">true</boolProp> <stringProp name="Argument.name">passwd</stringProp> <boolProp name="HTTPArgument.always_encode">false</boolProp> </elementProp> <elementProp name="" elementType="org.apache.jmeter.protocol.http.util.HTTPArgument"> <stringProp name="Argument.metadata">=</stringProp> <stringProp name="Argument.value"> Sign In </stringProp> <boolProp name="HTTPArgument.use_equals">true</boolProp> <stringProp name="Argument.name">SI</stringProp> <boolProp name="HTTPArgument.always_encode">false</boolProp> </elementProp> <elementProp name="" elementType="org.apache.jmeter.protocol.http.util.HTTPArgument"> <stringProp name="Argument.metadata">=</stringProp> <stringProp name="Argument.value">3</stringProp> <boolProp name="HTTPArgument.use_equals">true</boolProp> <stringProp name="Argument.name">LoginOptions</stringProp> <boolProp name="HTTPArgument.always_encode">false</boolProp> </elementProp> <elementProp name="" elementType="org.apache.jmeter.protocol.http.util.HTTPArgument"> <stringProp name="Argument.metadata">=</stringProp> <stringProp name="Argument.value">${ppft}</stringProp> <boolProp name="HTTPArgument.use_equals">true</boolProp> <stringProp name="Argument.name">PPFT</stringProp> <boolProp name="HTTPArgument.always_encode">false</boolProp> </elementProp> </collectionProp> <stringProp name="TestElement.name">User Defined Variables</stringProp> <boolProp name="TestElement.enabled">true</boolProp> </elementProp> <stringProp name="HTTPSampler.mimetype"></stringProp> <stringProp name="TestElement.gui_class">org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui</stringProp> <stringProp name="HTTPSampler.FILE_FIELD"></stringProp> <stringProp name="TestElement.name">HTTP Request</stringProp> <stringProp name="HTTPSampler.monitor">false</stringProp> <stringProp name="HTTPSampler.domain">login.live.com</stringProp> <stringProp name="HTTPSampler.FILE_NAME"></stringProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> </HTTPSampler> <hashTree> <RegexExtractor> <stringProp name="RegexExtractor.default">NO_MATCH</stringProp> <stringProp name="TestElement.gui_class">org.apache.jmeter.extractor.gui.RegexExtractorGui</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.extractor.RegexExtractor</stringProp> <stringProp name="RegexExtractor.regex">PPAuth=([^;]+)</stringProp> <stringProp name="TestElement.name">Regular Expression Extractor</stringProp> <boolProp name="TestElement.enabled">true</boolProp> <stringProp name="RegexExtractor.useHeaders">true</stringProp> <stringProp name="RegexExtractor.template">$1$</stringProp> <stringProp name="RegexExtractor.match_number">1</stringProp> <stringProp name="RegexExtractor.refname">variable</stringProp> </RegexExtractor> <hashTree/> </hashTree> <HTTPSampler> <stringProp name="HTTPSampler.path">${variable}</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.protocol.http.sampler.HTTPSampler</stringProp> <stringProp name="HTTPSampler.method">GET</stringProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> <stringProp name="HTTPSampler.protocol"></stringProp> <boolProp name="TestElement.enabled">true</boolProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <stringProp name="HTTPSampler.port"></stringProp> <elementProp name="HTTPsampler.Arguments" elementType="org.apache.jmeter.config.Arguments"> <stringProp name="TestElement.gui_class">org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.config.Arguments</stringProp> <collectionProp name="Arguments.arguments"/> <stringProp name="TestElement.name">User Defined Variables</stringProp> <boolProp name="TestElement.enabled">true</boolProp> </elementProp> <stringProp name="HTTPSampler.mimetype"></stringProp> <stringProp name="TestElement.gui_class">org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui</stringProp> <stringProp name="HTTPSampler.FILE_FIELD"></stringProp> <stringProp name="TestElement.name">HTTP Request</stringProp> <stringProp name="HTTPSampler.monitor">false</stringProp> <stringProp name="HTTPSampler.domain">localhost</stringProp> <stringProp name="HTTPSampler.FILE_NAME"></stringProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> </HTTPSampler> <hashTree/> <ResultCollector> <stringProp name="TestElement.gui_class">org.apache.jmeter.visualizers.ViewResultsFullVisualizer</stringProp> <stringProp name="TestElement.test_class">org.apache.jmeter.reporters.ResultCollector</stringProp> <stringProp name="TestElement.name">View Results Tree</stringProp> <objProp> <value class="org.apache.jmeter.samplers.SampleSaveConfiguration"> <time>true</time> <latency>true</latency> <timestamp>true</timestamp> <success>true</success> <label>true</label> <code>true</code> <message>true</message> <threadName>true</threadName> <dataType>false</dataType> <encoding>false</encoding> <assertions>true</assertions> <subresults>true</subresults> <responseData>true</responseData> <samplerData>false</samplerData> <xml>true</xml> <fieldNames>false</fieldNames> <responseHeaders>false</responseHeaders> <requestHeaders>false</requestHeaders> <responseDataOnError>true</responseDataOnError> <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> <assertionsResultsToSave>0</assertionsResultsToSave> <delimiter>,</delimiter> <printMilliseconds>true</printMilliseconds> </value> <samplerData>false</samplerData> <xml>true</xml> <fieldNames>false</fieldNames> <responseHeaders>false</responseHeaders> <requestHeaders>false</requestHeaders> <responseDataOnError>true</responseDataOnError> <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> <assertionsResultsToSave>0</assertionsResultsToSave> <delimiter>,</delimiter> <printMilliseconds>true</printMilliseconds> </value> <name>saveConfig</name> </objProp> <boolProp name="TestElement.enabled">true</boolProp> <stringProp name="filename"></stringProp> <boolProp name="ResultCollector.error_logging">false</boolProp> </ResultCollector> <hashTree/> </hashTree> </hashTree> </hashTree> </jmeterTestPlan> -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
