Author: sebb
Date: Fri Sep 5 06:07:40 2008
New Revision: 692436
URL: http://svn.apache.org/viewvc?rev=692436&view=rev
Log:
Bug 45749 - Response Assertion does not work with a substring that is not a
valid RE
Modified:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java
jakarta/jmeter/trunk/xdocs/changes.xml
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=692436&r1=692435&r2=692436&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
Fri Sep 5 06:07:40 2008
@@ -312,6 +312,7 @@
boolean contains = isContainsType(); // do it once outside loop
boolean equals = isEqualsType();
boolean substring = isSubstringType();
+ boolean matches = isMatchType();
boolean debugEnabled = log.isDebugEnabled();
if (debugEnabled){
log.debug("Type:" + (contains?"Contains":"Match") + (not? "(not)":
""));
@@ -323,7 +324,10 @@
PropertyIterator iter = getTestStrings().iterator();
while (iter.hasNext()) {
String stringPattern = iter.next().getStringValue();
- Pattern pattern =
JMeterUtils.getPatternCache().getPattern(stringPattern,
Perl5Compiler.READ_ONLY_MASK);
+ Pattern pattern = null;
+ if (contains || matches) {
+ pattern =
JMeterUtils.getPatternCache().getPattern(stringPattern,
Perl5Compiler.READ_ONLY_MASK);
+ }
boolean found;
if (contains) {
found = localMatcher.contains(toCheck, pattern);
@@ -336,12 +340,12 @@
}
pass = not ? !found : found;
if (!pass) {
- if (debugEnabled){log.debug("Failed: "+pattern);}
+ if (debugEnabled){log.debug("Failed: "+stringPattern);}
result.setFailure(true);
result.setFailureMessage(getFailText(stringPattern,toCheck));
break;
}
- if (debugEnabled){log.debug("Passed: "+pattern);}
+ if (debugEnabled){log.debug("Passed: "+stringPattern);}
}
} catch (MalformedCachePatternException e) {
result.setError(true);
Modified:
jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java?rev=692436&r1=692435&r2=692436&view=diff
==============================================================================
--- jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java
(original)
+++ jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java
Fri Sep 5 06:07:40 2008
@@ -351,23 +351,64 @@
assertPassed();
}
+
+ public void testResponseAssertionSubstring() throws Exception{
+ assertion.unsetNotType();
+ assertion.setToSubstringType();
+ assertion.setTestFieldURL();
+ assertion.addTestString("Sampler");
+ assertion.addTestString("Label");
+ assertion.addTestString("+(");
+
+ result = assertion.getResult(sample);
+ assertFailed();
+
+ assertion.setToNotType();
+
+ result = assertion.getResult(sample);
+ assertFailed();
+
+ assertion.clearTestStrings();
+ assertion.addTestString("r l");
+ result = assertion.getResult(sample);
+ assertPassed();
+
+ assertion.unsetNotType();
+ assertion.setTestFieldResponseData();
+
+ assertion.clearTestStrings();
+ assertion.addTestString("line 2");
+ result = assertion.getResult(sample);
+ assertPassed();
+
+ assertion.clearTestStrings();
+ assertion.addTestString("line 2\n\nEOF");
+ result = assertion.getResult(sample);
+ assertPassed();
+
+ assertion.setTestFieldResponseCode();
+
+ assertion.clearTestStrings();
+ assertion.addTestString("401");
+ result = assertion.getResult(sample);
+ assertPassed();
+
+ }
+
// TODO - need a lot more tests
private void assertPassed() throws Exception{
- if (null != result.getFailureMessage()){
-
//System.out.println(result.getFailureMessage());// debug
- }
assertNull(result.getFailureMessage(),result.getFailureMessage());
- assertFalse(result.isError());
- assertFalse(result.isFailure());
+ assertFalse("Not expecting error:
"+result.getFailureMessage(),result.isError());
+ assertFalse("Not expecting error",result.isError());
+ assertFalse("Not expecting
failure",result.isFailure());
}
private void assertFailed() throws Exception{
assertNotNull(result.getFailureMessage());
- //System.out.println(result.getFailureMessage());
assertFalse("Should not be: Response was
null","Response was null".equals(result.getFailureMessage()));
- assertFalse(result.isError());
- assertTrue(result.isFailure());
+ assertFalse("Not expecting error:
"+result.getFailureMessage(),result.isError());
+ assertTrue("Expecting failure",result.isFailure());
}
}
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=692436&r1=692435&r2=692436&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Fri Sep 5 06:07:40 2008
@@ -89,6 +89,7 @@
<li>Bug 45185 - CSV dataset blank delimiter causes OOM</li>
<li>Bug 43791 - ensure QueueReceiver is closed</li>
<li>Fix NPE (in DataSourceElement) when using JDBC in client-server mode</li>
+<li>Bug 45749 - Response Assertion does not work with a substring that is not
a valid RE</li>
</ul>
<h3>Improvements</h3>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]