mstover1    2005/08/29 14:04:12

  Modified:    src/core/org/apache/jmeter/testbeans TestBeanHelper.java
               src/components/org/apache/jmeter/assertions
                        CompareAssertion.java
  Log:
  the compare assertion can now take a list of regular expressions to filter 
out of the strings it compares
  
  Revision  Changes    Path
  1.5       +3 -3      
jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBeanHelper.java
  
  Index: TestBeanHelper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBeanHelper.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TestBeanHelper.java       29 Aug 2005 18:48:02 -0000      1.4
  +++ TestBeanHelper.java       29 Aug 2005 21:04:11 -0000      1.5
  @@ -120,7 +120,7 @@
                                JMeterProperty propVal = iter.next();
                                try
                                {
  -                                     
values.add(Converter.convert(propVal.getObjectValue(), Class.forName(type)));
  +                                     
values.add(Converter.convert(propVal.getStringValue(), Class.forName(type)));
                                }
                                catch(Exception e)
                                {
  
  
  
  1.3       +26 -3     
jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertion.java
  
  Index: CompareAssertion.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertion.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CompareAssertion.java     29 Aug 2005 18:48:02 -0000      1.2
  +++ CompareAssertion.java     29 Aug 2005 21:04:12 -0000      1.3
  @@ -12,13 +12,18 @@
   import org.apache.jmeter.samplers.SampleResult;
   import org.apache.jmeter.testbeans.TestBean;
   import org.apache.jmeter.testelement.AbstractTestElement;
  +import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
  +import org.apache.oro.text.regex.StringSubstitution;
  +import org.apache.oro.text.regex.Substitution;
  +import org.apache.oro.text.regex.Util;
   
   public class CompareAssertion extends AbstractTestElement implements 
Assertion, TestBean, Serializable,
                LoopIterationListener {
        static Logger log = LoggingManager.getLoggerForClass();
        transient List responses;
  +     private static final Substitution emptySub = new StringSubstitution("");
   
        transient boolean iterationDone = false;
   
  @@ -26,7 +31,7 @@
   
        private long compareTime = -1;
        
  -     Collection stringsToSkip;
  +     Collection<String> stringsToSkip;
   
        public CompareAssertion() {
                super();
  @@ -102,6 +107,7 @@
                                        result.setFailureMessage("Unsupported 
Encoding Exception: " +sResult.getDataEncoding());
                                        return;
                                }
  +                             currentContent = filterString(currentContent);
                                if (prevContent != null)
                                {
                                        success = 
prevContent.equals(currentContent);
  @@ -119,7 +125,7 @@
                                        message.append(sResult.toString());
                                        message.append("\n\n");
                                        message.append(currentContent);
  -                                     message.append("/n/n");
  +                                     message.append("\n\n");
                                        
message.append("==============================\n\n");
                                        
result.setFailureMessage(message.toString());
                                        break;
  @@ -130,6 +136,23 @@
                }
        } 
        
  +     private String filterString(String content)
  +     {
  +             if(stringsToSkip == null || stringsToSkip.size() == 0)
  +             {
  +                     return content;
  +             }
  +             else
  +             {
  +                     for(String regex : stringsToSkip)
  +                     {
  +                             log.info("replacing regex: " + regex);
  +                             content = 
Util.substitute(JMeterUtils.getMatcher(),JMeterUtils.getPatternCache().getPattern(regex),emptySub,content,Util.SUBSTITUTE_ALL);
  +                     }
  +             }
  +             return content;
  +     }
  +     
        /*
                 * (non-Javadoc)
                 * 
  @@ -189,7 +212,7 @@
         * @param stringsToSkip The stringsToSkip to set.
         */
        public void setStringsToSkip(Collection stringsToSkip) {
  -             this.stringsToSkip = stringsToSkip;
  +             this.stringsToSkip = (Collection<String>)stringsToSkip;
        }
   
   }
  
  
  

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

Reply via email to