Author: sebb
Date: Thu Oct  4 04:45:55 2007
New Revision: 581862

URL: http://svn.apache.org/viewvc?rev=581862&view=rev
Log:
Bug 43451 - Allow Regex Extractor to operate on Response Code/Message

Modified:
    jakarta/jmeter/trunk/docs/changes.html
    jakarta/jmeter/trunk/docs/images/screenshots/regex_extractor.png
    jakarta/jmeter/trunk/docs/usermanual/component_reference.html
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java
    
jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/images/screenshots/regex_extractor.png
    jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml

Modified: jakarta/jmeter/trunk/docs/changes.html
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/changes.html?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/changes.html (original)
+++ jakarta/jmeter/trunk/docs/changes.html Thu Oct  4 04:45:55 2007
@@ -196,6 +196,16 @@
                                                </li>
                                                                        
 
+                                                                               
                <li     >
+                                                               Property 
Display to show the value of System and JMeter properties and allow them to be 
changed
+                                               </li>
+                                                                       
+
+                                                                               
                <li     >
+                                                               Bug 43451 - 
Allow Regex Extractor to operate on Response Code/Message
+                                               </li>
+                                                                       
+
                                                </ul>
                                                                                
                                                                                
<h4     >
                                                                Non-functional 
Improvements
@@ -2913,7 +2923,6 @@
                                                                                
                <li     >
                                                                Extra Proxy 
Server options: 
 Create all samplers with keep-alive disabled 
-
 Add Separator markers between sets of samples 
 Add Response Assertion to first sampler in each set 
                                                </li>

Modified: jakarta/jmeter/trunk/docs/images/screenshots/regex_extractor.png
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/regex_extractor.png?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
Binary files - no diff available.

Modified: jakarta/jmeter/trunk/docs/usermanual/component_reference.html
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/usermanual/component_reference.html?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/usermanual/component_reference.html (original)
+++ jakarta/jmeter/trunk/docs/usermanual/component_reference.html Thu Oct  4 
04:45:55 2007
@@ -10295,13 +10295,11 @@
                                <tr><td>
                                                                                
                                                                                
        <p      >
                                                                Allows the user 
to extract values from a server response using a Perl-type regular expression.  
As a post-processor,
-this element will execute after each Sample request in its 
-                                                                               
                                <a 
href="build-test-plan.html#scoping_rules">scope</a>
-                                                                               
, applying the regular expression, extracting the requested values,
+this element will execute after each Sample request in its scope, applying the 
regular expression, extracting the requested values,
 generate the template string, and store the result into the given variable 
name.
                                                </p>
                                                                                
                                        <p><b>Control Panel</b></p>
-                                               <div align="center"><img 
width='395' height='241' src="../images/screenshots/regex_extractor.png"></div>
+                                               <div align="center"><img 
width='494' height='257' src="../images/screenshots/regex_extractor.png"></div>
                                                                                
                                                                                
                         <p>
        <b>Parameters</b>
        <table border="1" cellspacing="0" cellpadding="2">
@@ -10316,7 +10314,8 @@
                </tr>
                        <tr>
                        <td>Response Field to check</td>
-                       <td>                                            Body or 
Headers. These refer to the Sampler Response. Headers can be useful for HTTP 
samples; it may not be present for other sample types.
+                       <td>                                            Body, 
Headers, URL, Response Code, Response Message.
+        These refer to the Sampler Response. Headers can be useful for HTTP 
samples; it may not be present for other sample types.
                        </td>
                        <td>
                                                                                
        yes

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java
 Thu Oct  4 04:45:55 2007
@@ -63,6 +63,9 @@
        public static final String USE_HDRS = "true"; // $NON-NLS-1$
        public static final String USE_BODY = "false"; // $NON-NLS-1$
     public static final String USE_URL = "URL"; // $NON-NLS-1$
+       public static final String USE_CODE = "code"; // $NON-NLS-1$
+       public static final String USE_MESSAGE = "message"; // $NON-NLS-1$
+
 
        private static final String REGEX = "RegexExtractor.regex"; // 
$NON-NLS-1$
 
@@ -108,9 +111,10 @@
 
                Perl5Matcher matcher = JMeterUtils.getMatcher();
                String inputString = 
-                       useUrl() ? previousResult.getUrlAsString() // Bug 39707 
-                       :
-                       useHeaders() ? previousResult.getResponseHeaders()
+                         useUrl() ? previousResult.getUrlAsString() // Bug 
39707 
+                       : useHeaders() ? previousResult.getResponseHeaders()
+                       : useCode() ? previousResult.getResponseCode() //Bug 
43451
+                       : useMessage() ? previousResult.getResponseMessage() 
//Bug 43451
                    : previousResult.getResponseDataAsString() // Bug 36898
                    ; 
                if (log.isDebugEnabled()) {
@@ -360,14 +364,25 @@
 
        // Allow for property not yet being set (probably only applies to Test 
cases)
        public boolean useBody() {
-       String body = getPropertyAsString(MATCH_AGAINST);
-        return body.length()==0 || USE_BODY.equalsIgnoreCase(body);// 
$NON-NLS-1$
+       String prop = getPropertyAsString(MATCH_AGAINST);
+        return prop.length()==0 || USE_BODY.equalsIgnoreCase(prop);// 
$NON-NLS-1$
     }
 
        public boolean useUrl() {
-       String body = getPropertyAsString(MATCH_AGAINST);
-        return USE_URL.equalsIgnoreCase(body);
+       String prop = getPropertyAsString(MATCH_AGAINST);
+        return USE_URL.equalsIgnoreCase(prop);
     }
+
+       public boolean useCode() {
+       String prop = getPropertyAsString(MATCH_AGAINST);
+        return USE_CODE.equalsIgnoreCase(prop);
+       }
+
+       public boolean useMessage() {
+       String prop = getPropertyAsString(MATCH_AGAINST);
+        return USE_MESSAGE.equalsIgnoreCase(prop);
+       }
+
        public void setUseField(String actionCommand) {
                setProperty(MATCH_AGAINST,actionCommand);
        }

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java
 Thu Oct  4 04:45:55 2007
@@ -56,6 +56,10 @@
     
     private JRadioButton useURL;
 
+    private JRadioButton useCode;
+
+    private JRadioButton useMessage;
+
        private ButtonGroup group;
 
        public RegexExtractorGui() {
@@ -74,6 +78,8 @@
                        useHeaders.setSelected(re.useHeaders());
                        useBody.setSelected(re.useBody());
                useURL.setSelected(re.useUrl());
+               useCode.setSelected(re.useCode());
+               useMessage.setSelected(re.useMessage());
                        regexField.setText(re.getRegex());
                        templateField.setText(re.getTemplate());
                        defaultField.setText(re.getDefaultValue());
@@ -116,8 +122,6 @@
         super.clearGui();
         
         useBody.setSelected(true);
-        useHeaders.setSelected(false);
-        useURL.setSelected(false);
         
         regexField.setText(""); //$NON-NLS-1$
         templateField.setText(""); //$NON-NLS-1$
@@ -144,15 +148,21 @@
                useBody = new 
JRadioButton(JMeterUtils.getResString("regex_src_body")); //$NON-NLS-1$
                useHeaders = new 
JRadioButton(JMeterUtils.getResString("regex_src_hdrs")); //$NON-NLS-1$
         useURL = new JRadioButton(JMeterUtils.getResString("regex_src_url")); 
//$NON-NLS-1$
+        useCode = new 
JRadioButton(JMeterUtils.getResString("assertion_code_resp")); //$NON-NLS-1$
+        useMessage = new 
JRadioButton(JMeterUtils.getResString("assertion_message_resp")); //$NON-NLS-1$
 
                group = new ButtonGroup();
                group.add(useBody);
                group.add(useHeaders);
         group.add(useURL);
+        group.add(useCode);
+        group.add(useMessage);
 
                panel.add(useBody);
                panel.add(useHeaders);
         panel.add(useURL);
+        panel.add(useCode);
+        panel.add(useMessage);
 
                useBody.setSelected(true);
                
@@ -160,6 +170,8 @@
                useBody.setActionCommand(RegexExtractor.USE_BODY);
                useHeaders.setActionCommand(RegexExtractor.USE_HDRS);
                useURL.setActionCommand(RegexExtractor.USE_URL);
+               useCode.setActionCommand(RegexExtractor.USE_CODE);
+               useMessage.setActionCommand(RegexExtractor.USE_MESSAGE);
                
                return panel;
        }

Modified: 
jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java
 (original)
+++ 
jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java
 Thu Oct  4 04:45:55 2007
@@ -60,6 +60,8 @@
                                        + "</row>" + 
"</company-xmlext-query-ret>";
                        result.setResponseData(data.getBytes());
                        result.setResponseHeaders("Header1: Value1\nHeader2: 
Value2");
+                       result.setResponseCode("abcd");
+                       result.setResponseMessage("The quick brown fox");
                        vars = new JMeterVariables();
                        jmctx.setVariables(vars);
                        jmctx.setPreviousResult(result);
@@ -211,6 +213,29 @@
                        result.setURL(new 
URL("http://jakarta.apache.org/index.html?abcd";));
                        extractor.process();
                        assertEquals("index",vars.get("regVal"));
+               }
+
+               public void testVariableExtraction9() throws Exception {
+                       extractor.setRegex("(\\w+)");
+                       extractor.setTemplate("$1$");
+                       extractor.setMatchNumber(1);
+                       extractor.setUseField(RegexExtractor.USE_CODE);
+                       assertFalse("useHdrs should be false", 
extractor.useHeaders());
+                       assertFalse("useBody should be false", 
extractor.useBody());
+                       assertFalse("useURL should be false", 
extractor.useUrl());
+                       assertFalse("useMessage should be false", 
extractor.useMessage());
+                       assertTrue("useCode should be true", 
extractor.useCode());
+                       extractor.process();
+                       assertEquals("abcd",vars.get("regVal"));
+                       extractor.setUseField(RegexExtractor.USE_MESSAGE);
+                       assertFalse("useHdrs should be false", 
extractor.useHeaders());
+                       assertFalse("useBody should be false", 
extractor.useBody());
+                       assertFalse("useURL should be false", 
extractor.useUrl());
+                       assertTrue("useMessage should be true", 
extractor.useMessage());
+                       assertFalse("useCode should be falsee", 
extractor.useCode());
+                       extractor.setMatchNumber(3);
+                       extractor.process();
+                       assertEquals("brown",vars.get("regVal"));
                }
 
         public void testNoDefault() throws Exception {

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu Oct  4 04:45:55 2007
@@ -46,6 +46,7 @@
 <li>Menu items now appear in execution order</li>
 <li>Test Plan items can now only be dropped/pasted into parts of the tree 
where they are allowed</li>
 <li>Property Display to show the value of System and JMeter properties and 
allow them to be changed</li>
+<li>Bug 43451 - Allow Regex Extractor to operate on Response Code/Message</li>
 </ul>
 
 <h4>Non-functional Improvements</h4>

Modified: jakarta/jmeter/trunk/xdocs/images/screenshots/regex_extractor.png
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/regex_extractor.png?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
Binary files - no diff available.

Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Thu Oct  4 
04:45:55 2007
@@ -3229,13 +3229,14 @@
                is applied only to a particular sampler, add it as a child of 
the sampler.
        <br></br>
        </description>
-<component name="Regular Expression Extractor" index="&sect-num;.8.1"  
width="395" height="241" screenshot="regex_extractor.png">
+<component name="Regular Expression Extractor" index="&sect-num;.8.1"  
width="494" height="257" screenshot="regex_extractor.png">
 <description><p>Allows the user to extract values from a server response using 
a Perl-type regular expression.  As a post-processor,
-this element will execute after each Sample request in its <scope/>, applying 
the regular expression, extracting the requested values,
+this element will execute after each Sample request in its scope, applying the 
regular expression, extracting the requested values,
 generate the template string, and store the result into the given variable 
name.</p></description>
 <properties>
         <property name="Name" required="">Descriptive name for this element 
that is shown in the tree.</property>
-        <property name="Response Field to check" required="yes">Body or 
Headers. These refer to the Sampler Response. Headers can be useful for HTTP 
samples; it may not be present for other sample types.</property>
+        <property name="Response Field to check" required="yes">Body, Headers, 
URL, Response Code, Response Message.
+        These refer to the Sampler Response. Headers can be useful for HTTP 
samples; it may not be present for other sample types.</property>
         <property name="Reference Name" required="Yes">The name of the JMeter 
variable in which to store the result.  Also note that each group is stored as 
[refname]_g#, where [refname] is the string you entered as the reference name, 
and # is the group number, where group 0 is the entire match, group 1 is the 
match from the first set of parentheses, etc.</property>
         <property name="Regular Expression" required="Yes">The regular 
expression used to parse the response data. 
         This must contain at least one set of parentheses "()" to capture a 
portion of the string, unless using the group $0$.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to