You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by ms...@apache.org on 2005/08/29 23:04:12 UTC

cvs commit: jakarta-jmeter/src/components/org/apache/jmeter/assertions CompareAssertion.java

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: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org