Author: sebb
Date: Wed Feb 20 08:10:49 2008
New Revision: 629519

URL: http://svn.apache.org/viewvc?rev=629519&view=rev
Log:
Add "Substring" option to Response Assertion

Modified:
    jakarta/jmeter/trunk/docs/changes.html
    jakarta/jmeter/trunk/docs/images/screenshots/assertion/assertion.png
    jakarta/jmeter/trunk/docs/usermanual/component_reference.html
    jakarta/jmeter/trunk/docs/usermanual/get-started.html
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
    
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/images/screenshots/assertion/assertion.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=629519&r1=629518&r2=629519&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/changes.html (original)
+++ jakarta/jmeter/trunk/docs/changes.html Wed Feb 20 08:10:49 2008
@@ -147,6 +147,9 @@
 CSV and XML files can now contain additional variables (define the JMeter 
property sample_variables).
                                                </p>
                                                                                
                                                                                
<p      >
+                                                               Response 
Assertion can now match on substrings
+                                               </p>
+                                                                               
                                                                                
<p      >
                                                                Number of 
classes loaded in non-GUI mode is much reduced.
                                                </p>
                                                                                
                                                                                
<h4     >
@@ -230,6 +233,11 @@
                                                </li>
                                                                        
 
+                                                                               
                <li     >
+                                                               Bug 44314 - Not 
possible to add more than one SyncTimer
+                                               </li>
+                                                                       
+
                                                </ul>
                                                                                
                                                                                
<h4     >
                                                                Improvements
@@ -301,6 +309,16 @@
                                                                                
                <li     >
                                                                Allow most 
functions to be used on the Test Plan. 
 Note __split() and __regex() cannot be used on the Test Plan.
+                                               </li>
+                                                                       
+
+                                                                               
                <li     >
+                                                               Allow Global 
properties to be loaded from a file, e.g. -Gglobal.properties
+                                               </li>
+                                                                       
+
+                                                                               
                <li     >
+                                                               Add "Substring" 
option to Response Assertion
                                                </li>
                                                                        
 

Modified: jakarta/jmeter/trunk/docs/images/screenshots/assertion/assertion.png
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/assertion/assertion.png?rev=629519&r1=629518&r2=629519&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=629519&r1=629518&r2=629519&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/usermanual/component_reference.html (original)
+++ jakarta/jmeter/trunk/docs/usermanual/component_reference.html Wed Feb 20 
08:10:49 2008
@@ -7891,7 +7891,7 @@
 
 
                                                                                
                                <p><b>Control Panel</b></p>
-                                               <div align="center"><img 
width='766' height='382' 
src="../images/screenshots/assertion/assertion.png"></div>
+                                               <div align="center"><img 
width='762' height='374' 
src="../images/screenshots/assertion/assertion.png"></div>
                                                                                
                                                                                
                         <p>
        <b>Parameters</b>
        <table border="1" cellspacing="0" cellpadding="2">
@@ -7933,9 +7933,35 @@
                </tr>
                        <tr>
                        <td>Pattern Matching Rules</td>
-                       <td>                                            
Indicates whether the text being tested
-        must CONTAIN or MATCH the test patterns.  NOT may also be selected to 
indicate the text
-        should NOT CONTAIN or NOT MATCH the test patterns.
+                       <td>                                            
Indicates how the text being tested
+        is checked against the pattern.
+        
+                                                                               
                <ul     >
+                                                               
+        
+                                                                               
                <li     >
+                                                               Contains - true 
if the text contains the regular expression pattern
+                                               </li>
+                                                                       
+        
+                                                                               
                <li     >
+                                                               Matches - true 
if the whole text matches the regular expression pattern
+                                               </li>
+                                                                       
+        
+                                                                               
                <li     >
+                                                               Equals - true 
if the whole text equals the pattern string (case-sensitive)
+                                               </li>
+                                                                       
+        
+                                                                               
                <li     >
+                                                               Substring - 
true if the text contains the pattern string (case-sensitive)
+                                               </li>
+                                                                       
+        
+                                               </ul>
+                                                                       
+        NOT may also be selected to invert the result of the check.
                        </td>
                        <td>
                                                                                
        Yes
@@ -7943,8 +7969,11 @@
                </tr>
                        <tr>
                        <td>Patterns to Test</td>
-                       <td>                                            A list 
of regular expressions to
-        be tested.  Each pattern is tested separately.  There is no difference 
between setting up
+                       <td>                                            A list 
of patterns to
+        be tested.  
+        Each pattern is tested separately. 
+        If a pattern fails, then further patterns are not checked.
+        There is no difference between setting up
         one Assertion with multiple patterns and setting up multiple 
Assertions with one
         pattern each (assuming the other options are the same).
         
@@ -9254,7 +9283,6 @@
                        </td></tr>
        </table></p>
                                                                        
-
 
                                                                                
                </td></tr>
                <tr><td><br></td></tr>

Modified: jakarta/jmeter/trunk/docs/usermanual/get-started.html
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/usermanual/get-started.html?rev=629519&r1=629518&r2=629519&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/usermanual/get-started.html (original)
+++ jakarta/jmeter/trunk/docs/usermanual/get-started.html Wed Feb 20 08:10:49 
2008
@@ -1145,8 +1145,10 @@
                 Set password for proxy server that JMeter is to use
         -J, --jmeterproperty {argument}={value}
                 Define additional JMeter properties
-        -G, --globalproperty (argument)=(value)
+        -G, --globalproperty (argument)[=(value)]
                 Define Global properties (sent to servers)
+                e.g. -Gport=123
+                 or -Gglobal.properties
         -D, --systemproperty {argument}={value}
                 Define additional System properties
         -S, --systemPropertyFile {filename}

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?rev=629519&r1=629518&r2=629519&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
 Wed Feb 20 08:10:49 2008
@@ -77,6 +77,11 @@
 
        private final static int EQUALS = 1 << 3;
 
+    private final static int SUBSTRING = 1 << 4;
+
+    // Mask should contain all types (but not NOT)
+    private final static int TYPE_MASK = CONTAINS | EQUALS | MATCH | SUBSTRING;
+    
     private static final int  EQUALS_SECTION_DIFF_LEN
             = JMeterUtils.getPropDefault("assertion.equals_section_diff_len", 
100);
 
@@ -147,6 +152,11 @@
                setProperty(new IntegerProperty(TEST_TYPE, testType));
        }
 
+    private void setTestTypeMasked(int testType) {
+        int value = getTestType() & ~(TYPE_MASK) | testType;
+        setProperty(new IntegerProperty(TEST_TYPE, value));
+    }
+
        public void addTestString(String testString) {
                getTestStrings().addProperty(new 
StringProperty(String.valueOf(testString.hashCode()), testString));
        }
@@ -211,6 +221,10 @@
                return (getTestType() & EQUALS) > 0;
        }
 
+    public boolean isSubstringType() {
+        return (getTestType() & SUBSTRING) > 0;
+    }
+
        public boolean isContainsType() {
                return (getTestType() & CONTAINS) > 0;
        }
@@ -224,17 +238,21 @@
        }
 
        public void setToContainsType() {
-               setTestType((getTestType() | CONTAINS) & ~(MATCH | EQUALS));
+               setTestTypeMasked(CONTAINS);
        }
 
        public void setToMatchType() {
-               setTestType((getTestType() | MATCH) & ~(CONTAINS | EQUALS));
+           setTestTypeMasked(MATCH);
        }
 
        public void setToEqualsType() {
-               setTestType((getTestType() | EQUALS) & ~(MATCH | CONTAINS));
+           setTestTypeMasked(EQUALS);
        }
 
+    public void setToSubstringType() {
+        setTestTypeMasked(SUBSTRING);
+    }
+
        public void setToNotType() {
                setTestType((getTestType() | NOT));
        }
@@ -292,6 +310,7 @@
 
                boolean contains = isContainsType(); // do it once outside loop
                boolean equals = isEqualsType();
+        boolean substring = isSubstringType();
                boolean debugEnabled = log.isDebugEnabled();
                if (debugEnabled){
                        log.debug("Type:" + (contains?"Contains":"Match") + 
(not? "(not)": ""));
@@ -309,6 +328,8 @@
                                        found = localMatcher.contains(toCheck, 
pattern);
                 } else if (equals) {
                     found = toCheck.equals(stringPattern);
+                } else if (substring) {
+                    found = toCheck.indexOf(stringPattern) != -1;
                                } else {
                                        found = localMatcher.matches(toCheck, 
pattern);
                                }
@@ -356,9 +377,11 @@
 
                switch (getTestType()) {
                case CONTAINS:
+        case SUBSTRING:
                        sb.append(" expected to contain ");
                        break;
                case NOT | CONTAINS:
+        case NOT | SUBSTRING:
                        sb.append(" expected not to contain ");
                        break;
                case MATCH:

Modified: 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java?rev=629519&r1=629518&r2=629519&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java
 (original)
+++ 
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java
 Wed Feb 20 08:10:49 2008
@@ -83,11 +83,16 @@
        private JRadioButton matchesBox;
 
        /**
-        * Radio button indicating if the field equals the first pattern.
+        * Radio button indicating if the field equals the string.
         */
        private JRadioButton equalsBox;
 
     /**
+     * Radio button indicating if the field contains the string.
+     */
+    private JRadioButton substringBox;
+
+    /**
         * Checkbox indicating to test that the field does NOT contain/match the
         * patterns.
         */
@@ -153,6 +158,8 @@
                                ra.setToContainsType();
                        } else if (equalsBox.isSelected()) {
                 ra.setToEqualsType();
+            } else if (substringBox.isSelected()) {
+                ra.setToSubstringType();
                        } else {
                                ra.setToMatchType();
                        }
@@ -181,8 +188,6 @@
         assumeSuccess.setSelected(false);
         
         containsBox.setSelected(true);
-        matchesBox.setSelected(false);
-        equalsBox.setSelected(false);
         notBox.setSelected(false);
     }    
 
@@ -201,23 +206,15 @@
 
                if (model.isContainsType()) {
                        containsBox.setSelected(true);
-                       matchesBox.setSelected(false);
-            equalsBox.setSelected(false);
         } else if (model.isEqualsType()) {
-                       containsBox.setSelected(false);
-                       matchesBox.setSelected(false);
             equalsBox.setSelected(true);
+        } else if (model.isSubstringType()) {
+            substringBox.setSelected(true);
                } else {
-                       containsBox.setSelected(false);
                        matchesBox.setSelected(true);
-            equalsBox.setSelected(false);
                }
 
-               if (model.isNotType()) {
-                       notBox.setSelected(true);
-               } else {
-                       notBox.setSelected(false);
-               }
+               notBox.setSelected(model.isNotType());
 
                if (model.isTestFieldResponseData()) {
                        responseStringButton.setSelected(true);
@@ -325,6 +322,10 @@
                equalsBox = new 
JRadioButton(JMeterUtils.getResString("assertion_equals")); //$NON-NLS-1$
                group.add(equalsBox);
                panel.add(equalsBox);
+
+        substringBox = new 
JRadioButton(JMeterUtils.getResString("assertion_substring")); //$NON-NLS-1$
+        group.add(substringBox);
+        panel.add(substringBox);
 
                notBox = new 
JCheckBox(JMeterUtils.getResString("assertion_not")); //$NON-NLS-1$
                panel.add(notBox);

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=629519&r1=629518&r2=629519&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
Wed Feb 20 08:10:49 2008
@@ -55,6 +55,7 @@
 assertion_pattern_match_rules=Pattern Matching Rules
 assertion_patterns_to_test=Patterns to Test
 assertion_resp_field=Response Field to Test
+assertion_substring=Substring
 assertion_text_resp=Text Response
 assertion_textarea_label=Assertions\:
 assertion_title=Response Assertion

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=629519&r1=629518&r2=629519&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Wed Feb 20 08:10:49 2008
@@ -40,6 +40,8 @@
 <p>CSV fields can now contain delimiters. 
 CSV and XML files can now contain additional variables (define the JMeter 
property sample_variables).</p>
 
+<p>Response Assertion can now match on substrings</p>
+
 <p>Number of classes loaded in non-GUI mode is much reduced.</p>
 
 <h4>Known bugs</h4>
@@ -91,6 +93,7 @@
 <li>Allow most functions to be used on the Test Plan. 
 Note __split() and __regex() cannot be used on the Test Plan.</li>
 <li>Allow Global properties to be loaded from a file, e.g. 
-Gglobal.properties</li>
+<li>Add "Substring" option to Response Assertion</li>
 </ul>
 
 <h4>Non-functional changes</h4>

Modified: jakarta/jmeter/trunk/xdocs/images/screenshots/assertion/assertion.png
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/assertion/assertion.png?rev=629519&r1=629518&r2=629519&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=629519&r1=629518&r2=629519&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Wed Feb 20 
08:10:49 2008
@@ -2441,7 +2441,7 @@
        "true" or "false" after all assertions for a sampler have been run.
         </note>
 </description>
-<component name="Response Assertion" index="&sect-num;.5.1" 
anchor="basic_assertion"  width="766" height="382" 
screenshot="assertion/assertion.png">
+<component name="Response Assertion" index="&sect-num;.5.1" 
anchor="basic_assertion"  width="762" height="374" 
screenshot="assertion/assertion.png">
 
 <description><p>The response assertion control panel lets you add pattern 
strings to be compared against various
        fields of the response.
@@ -2496,6 +2496,7 @@
         <li>Contains - true if the text contains the regular expression 
pattern</li>
         <li>Matches - true if the whole text matches the regular expression 
pattern</li>
         <li>Equals - true if the whole text equals the pattern string 
(case-sensitive)</li>
+        <li>Substring - true if the text contains the pattern string 
(case-sensitive)</li>
         </ul>
         NOT may also be selected to invert the result of the check.</property>
         <property name="Patterns to Test" required="Yes">A list of patterns to



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

Reply via email to