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 se...@apache.org on 2008/10/04 20:06:35 UTC
svn commit: r701680 - in /jakarta/jmeter/trunk:
src/components/org/apache/jmeter/assertions/ResponseAssertion.java
test/src/org/apache/jmeter/assertions/PackageTest.java xdocs/changes.xml
Author: sebb
Date: Sat Oct 4 11:06:35 2008
New Revision: 701680
URL: http://svn.apache.org/viewvc?rev=701680&view=rev
Log:
Bug 45904 - Allow 'Not' Response Assertion to succeed with null sample
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=701680&r1=701679&r2=701680&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 Sat Oct 4 11:06:35 2008
@@ -19,6 +19,7 @@
package org.apache.jmeter.assertions;
import java.io.Serializable;
+import java.net.URL;
import java.util.ArrayList;
import org.apache.jmeter.samplers.SampleResult;
@@ -276,9 +277,9 @@
* an instance of SampleResult
* @return an instance of AssertionResult
*/
- AssertionResult evaluateResponse(SampleResult response) {
+ private AssertionResult evaluateResponse(SampleResult response) {
boolean pass = true;
- boolean not = (NOT & getTestType()) > 0;
+ boolean notTest = (NOT & getTestType()) > 0;
AssertionResult result = new AssertionResult(getName());
String toCheck = ""; // The string to check (Url or data)
@@ -296,26 +297,30 @@
} else if (isTestFieldResponseHeaders()) {
toCheck = response.getResponseHeaders();
} else { // Assume it is the URL
- toCheck = response.getSamplerData(); // TODO - is this where the URL is stored?
- if (toCheck == null) {
- toCheck = "";
+ toCheck = "";
+ final URL url = response.getURL();
+ if (url != null){
+ toCheck = url.toString();
}
}
+ result.setFailure(false);
+ result.setError(false);
+
if (toCheck.length() == 0) {
+ if (notTest) {
+ return result;
+ }
return result.setResultForNull();
}
- result.setFailure(false);
- result.setError(false);
-
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)": ""));
+ log.debug("Type:" + (contains?"Contains":"Match") + (notTest? "(not)": ""));
}
try {
@@ -338,7 +343,7 @@
} else {
found = localMatcher.matches(toCheck, pattern);
}
- pass = not ? !found : found;
+ pass = notTest ? !found : found;
if (!pass) {
if (debugEnabled){log.debug("Failed: "+stringPattern);}
result.setFailure(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=701680&r1=701679&r2=701680&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 Sat Oct 4 11:06:35 2008
@@ -18,6 +18,9 @@
package org.apache.jmeter.assertions;
+import java.net.MalformedURLException;
+import java.net.URL;
+
import junit.framework.TestCase;
import org.apache.jmeter.junit.JMeterTestCase;
@@ -41,9 +44,9 @@
assertEquals("D41D8CD98F00B204E9800998ECF8427E", MD5HexAssertion.baMD5Hex(new byte[] {}).toUpperCase(java.util.Locale.ENGLISH));
}
- int threadsRunning;
+ volatile int threadsRunning;
- int failed;
+ volatile int failed;
public void testThreadSafety() throws Exception {
Thread[] threads = new Thread[100];
@@ -259,7 +262,7 @@
private JMeterVariables vars;
private AssertionResult result;
- public void setUp() {
+ public void setUp() throws MalformedURLException {
jmctx = JMeterContextService.getContext();
assertion = new ResponseAssertion();
assertion.setThreadContext(jmctx);
@@ -272,7 +275,7 @@
"response Data\n" +
"line 2\n\nEOF"
).getBytes());
- sample.setSamplerData("Sampler Label");// This is where RA checks the URL!
+ sample.setURL(new URL("http://localhost/Sampler/Data/"));
sample.setResponseCode("401");
sample.setResponseHeaders("X-Header: abcd");
}
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=701680&r1=701679&r2=701680&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Sat Oct 4 11:06:35 2008
@@ -110,6 +110,7 @@
<li>Bug 45831 - WS Sampler reports incorrect throughput if SOAP packet creation fails</li>
<li>Bug 45887 - TCPSampler: timeout property incorrectly set</li>
<li>Bug 45928 - AJP/1.3 Sampler doesn't retrieve his label from messages.properties</li>
+<li>Bug 45904 - Allow 'Not' Response Assertion to succeed with null sample</li>
</ul>
<h3>Improvements</h3>
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org