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 2009/05/05 17:47:30 UTC
svn commit: r771840 - in /jakarta/jmeter/trunk:
src/components/org/apache/jmeter/assertions/
test/src/org/apache/jmeter/assertions/
Author: sebb
Date: Tue May 5 15:47:30 2009
New Revision: 771840
URL: http://svn.apache.org/viewvc?rev=771840&view=rev
Log:
Complete the refactoring of the package test
Added:
jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/MD5HexAssertionTest.java
- copied, changed from r771802, jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java
Removed:
jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java
Modified:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SizeAssertion.java
jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/ResponseAssertionTest.java
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=771840&r1=771839&r2=771840&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 Tue May 5 15:47:30 2009
@@ -38,7 +38,7 @@
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
-// @see org.apache.jmeter.assertions.PackageTest for unit tests
+// @see org.apache.jmeter.assertions.ResponseAssertionTest for unit tests
/**
* Test element to handle Response Assertions, @see AssertionGui
Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SizeAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SizeAssertion.java?rev=771840&r1=771839&r2=771840&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SizeAssertion.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/SizeAssertion.java Tue May 5 15:47:30 2009
@@ -27,7 +27,7 @@
import org.apache.jmeter.testelement.property.LongProperty;
import org.apache.jmeter.util.JMeterUtils;
-//@see org.apache.jmeter.assertions.PackageTest for unit tests
+//@see org.apache.jmeter.assertions.SizeAssertionTest for unit tests
/**
* Checks if the results of a Sample matches a particular size.
Copied: jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/MD5HexAssertionTest.java (from r771802, 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/MD5HexAssertionTest.java?p2=jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/MD5HexAssertionTest.java&p1=jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java&r1=771802&r2=771840&rev=771840&view=diff
==============================================================================
--- jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/PackageTest.java (original)
+++ jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/MD5HexAssertionTest.java Tue May 5 15:47:30 2009
@@ -18,25 +18,14 @@
package org.apache.jmeter.assertions;
-import java.net.MalformedURLException;
-import java.net.URL;
-
import junit.framework.TestCase;
+public class MD5HexAssertionTest extends TestCase {
-import org.apache.jmeter.junit.JMeterTestCase;
-import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.threads.JMeterContext;
-import org.apache.jmeter.threads.JMeterContextService;
-import org.apache.jmeter.threads.JMeterVariables;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
-public class PackageTest extends TestCase {
-
- public PackageTest() {
+ public MD5HexAssertionTest() {
super();
}
- public PackageTest(String arg0) {
+ public MD5HexAssertionTest(String arg0) {
super(arg0);
}
@@ -44,215 +33,4 @@
assertEquals("D41D8CD98F00B204E9800998ECF8427E", MD5HexAssertion.baMD5Hex(new byte[] {}).toUpperCase(java.util.Locale.ENGLISH));
}
- volatile int threadsRunning;
-
- volatile int failed;
-
- public void testThreadSafety() throws Exception {
- Thread[] threads = new Thread[100];
- for (int i = 0; i < threads.length; i++) {
- threads[i] = new TestThread();
- }
- failed = 0;
- for (int i = 0; i < threads.length; i++) {
- threads[i].start();
- threadsRunning++;
- }
- synchronized (this) {
- while (threadsRunning > 0) {
- wait();
- }
- }
- assertEquals(failed, 0);
- }
-
- class TestThread extends Thread {
- static final String TEST_STRING = "DAbale arroz a la zorra el abad.";
-
- // Used to be 'dábale', but caused trouble on Gump. Reasons
- // unknown.
- static final String TEST_PATTERN = ".*A.*\\.";
-
- public void run() {
- ResponseAssertion assertion = new ResponseAssertion();
- assertion.setTestFieldResponseData();
- assertion.setToContainsType();
- assertion.addTestString(TEST_PATTERN);
- SampleResult response = new SampleResult();
- response.setResponseData(TEST_STRING.getBytes());
- for (int i = 0; i < 100; i++) {
- AssertionResult result;
- result = assertion.getResult(response);
- if (result.isFailure() || result.isError()) {
- failed++;
- }
- }
- synchronized (PackageTest.this) {
- threadsRunning--;
- PackageTest.this.notifyAll();
- }
- }
- }
-
- public static class XPathAssertionTest extends TestCase {
- private static final Logger log = LoggingManager.getLoggerForClass();
-
- XPathAssertion assertion;
-
- SampleResult result;
-
- JMeterVariables vars;
-
- JMeterContext jmctx;
-
- public XPathAssertionTest() {
- super();
- }
-
- public XPathAssertionTest(String name) {
- super(name);
- }
-
- public void setUp() {
- jmctx = JMeterContextService.getContext();
- assertion = new XPathAssertion();
- assertion.setThreadContext(jmctx);// This would be done by the run
- // command
- // assertion.setRefName("regVal");
-
- result = new SampleResult();
- String data = "<company-xmlext-query-ret>" + "<row>" + "<value field=\"RetCode\">LIS_OK</value>"
- + "<value field=\"RetCodeExtension\"></value>" + "<value field=\"alias\"></value>"
- + "<value field=\"positioncount\"></value>" + "<value field=\"invalidpincount\">0</value>"
- + "<value field=\"pinposition1\">1</value>" + "<value field=\"pinpositionvalue1\"></value>"
- + "<value field=\"pinposition2\">5</value>" + "<value field=\"pinpositionvalue2\"></value>"
- + "<value field=\"pinposition3\">6</value>" + "<value field=\"pinpositionvalue3\"></value>"
- + "</row>" + "</company-xmlext-query-ret>";
- result.setResponseData(data.getBytes());
- vars = new JMeterVariables();
- jmctx.setVariables(vars);
- jmctx.setPreviousResult(result);
- }
-
- public void testAssertion() throws Exception {
- assertion.setXPathString("//row/value[@field = 'alias']");
- AssertionResult res = assertion.getResult(jmctx.getPreviousResult());
- log.debug(" res " + res.isError());
- log.debug(" failure " + res.getFailureMessage());
- assertFalse(res.isError());
- assertFalse(res.isFailure());
- }
-
- public void testNegateAssertion() throws Exception {
- assertion.setXPathString("//row/value[@field = 'noalias']");
- assertion.setNegated(true);
-
- AssertionResult res = assertion.getResult(jmctx.getPreviousResult());
- log.debug(" res " + res.isError());
- log.debug(" failure " + res.getFailureMessage());
- assertFalse(res.isError());
- assertFalse(res.isFailure());
- }
-
- public void testValidationFailure() throws Exception {
- assertion.setXPathString("//row/value[@field = 'alias']");
- assertion.setNegated(false);
- assertion.setValidating(true);
- AssertionResult res = assertion.getResult(jmctx.getPreviousResult());
- log.debug(res.getFailureMessage() + " error: " + res.isError() + " failure: " + res.isFailure());
- assertTrue(res.isError());
- assertFalse(res.isFailure());
-
- }
-
- public void testValidationSuccess() throws Exception {
- String data = "<?xml version=\"1.0\"?>" + "<!DOCTYPE BOOK [" + "<!ELEMENT p (#PCDATA)>"
- + "<!ELEMENT BOOK (OPENER,SUBTITLE?,INTRODUCTION?,(SECTION | PART)+)>"
- + "<!ELEMENT OPENER (TITLE_TEXT)*>" + "<!ELEMENT TITLE_TEXT (#PCDATA)>"
- + "<!ELEMENT SUBTITLE (#PCDATA)>" + "<!ELEMENT INTRODUCTION (HEADER, p+)+>"
- + "<!ELEMENT PART (HEADER, CHAPTER+)>" + "<!ELEMENT SECTION (HEADER, p+)>"
- + "<!ELEMENT HEADER (#PCDATA)>" + "<!ELEMENT CHAPTER (CHAPTER_NUMBER, CHAPTER_TEXT)>"
- + "<!ELEMENT CHAPTER_NUMBER (#PCDATA)>" + "<!ELEMENT CHAPTER_TEXT (p)+>" + "]>" + "<BOOK>"
- + "<OPENER>" + "<TITLE_TEXT>All About Me</TITLE_TEXT>" + "</OPENER>" + "<PART>"
- + "<HEADER>Welcome To My Book</HEADER>" + "<CHAPTER>"
- + "<CHAPTER_NUMBER>CHAPTER 1</CHAPTER_NUMBER>" + "<CHAPTER_TEXT>"
- + "<p>Glad you want to hear about me.</p>" + "<p>There's so much to say!</p>"
- + "<p>Where should we start?</p>" + "<p>How about more about me?</p>" + "</CHAPTER_TEXT>"
- + "</CHAPTER>" + "</PART>" + "</BOOK>";
-
- result.setResponseData(data.getBytes());
- vars = new JMeterVariables();
- jmctx.setVariables(vars);
- jmctx.setPreviousResult(result);
- assertion.setXPathString("/");
- assertion.setValidating(true);
- AssertionResult res = assertion.getResult(result);
- assertFalse(res.isError());
- assertFalse(res.isFailure());
- }
-
- public void testValidationFailureWithDTD() throws Exception {
- String data = "<?xml version=\"1.0\"?>" + "<!DOCTYPE BOOK [" + "<!ELEMENT p (#PCDATA)>"
- + "<!ELEMENT BOOK (OPENER,SUBTITLE?,INTRODUCTION?,(SECTION | PART)+)>"
- + "<!ELEMENT OPENER (TITLE_TEXT)*>" + "<!ELEMENT TITLE_TEXT (#PCDATA)>"
- + "<!ELEMENT SUBTITLE (#PCDATA)>" + "<!ELEMENT INTRODUCTION (HEADER, p+)+>"
- + "<!ELEMENT PART (HEADER, CHAPTER+)>" + "<!ELEMENT SECTION (HEADER, p+)>"
- + "<!ELEMENT HEADER (#PCDATA)>" + "<!ELEMENT CHAPTER (CHAPTER_NUMBER, CHAPTER_TEXT)>"
- + "<!ELEMENT CHAPTER_NUMBER (#PCDATA)>" + "<!ELEMENT CHAPTER_TEXT (p)+>" + "]>" + "<BOOK>"
- + "<OPENER>" + "<TITLE_TEXT>All About Me</TITLE_TEXT>" + "</OPENER>" + "<PART>"
- + "<HEADER>Welcome To My Book</HEADER>" + "<CHAPTER>"
- + "<CHAPTER_NUMBER>CHAPTER 1</CHAPTER_NUMBER>" + "<CHAPTER_TEXT>"
- + "<p>Glad you want to hear about me.</p>" + "<p>There's so much to say!</p>"
- + "<p>Where should we start?</p>" + "<p>How about more about me?</p>" + "</CHAPTER_TEXT>"
- + "</CHAPTER>" + "<illegal>not defined in dtd</illegal>" + "</PART>" + "</BOOK>";
-
- result.setResponseData(data.getBytes());
- vars = new JMeterVariables();
- jmctx.setVariables(vars);
- jmctx.setPreviousResult(result);
- assertion.setXPathString("/");
- assertion.setValidating(true);
- AssertionResult res = assertion.getResult(result);
- log.debug("failureMessage: " + res.getFailureMessage());
- assertTrue(res.isError());
- assertFalse(res.isFailure());
- }
-
- public void testTolerance() throws Exception {
- String data = "<html><head><title>testtitle</title></head>" + "<body>"
- + "<p><i><b>invalid tag nesting</i></b><hr>" + "</body></html>";
-
- result.setResponseData(data.getBytes());
- vars = new JMeterVariables();
- jmctx.setVariables(vars);
- jmctx.setPreviousResult(result);
- assertion.setXPathString("/html/head/title");
- assertion.setValidating(true);
- assertion.setTolerant(true);
- AssertionResult res = assertion.getResult(result);
- log.debug("failureMessage: " + res.getFailureMessage());
- assertFalse(res.isFailure());
- assertFalse(res.isError());
- }
-
- public void testNoTolerance() throws Exception {
- String data = "<html><head><title>testtitle</title></head>" + "<body>"
- + "<p><i><b>invalid tag nesting</i></b><hr>" + "</body></html>";
-
- result.setResponseData(data.getBytes());
- vars = new JMeterVariables();
- jmctx.setVariables(vars);
- jmctx.setPreviousResult(result);
- assertion.setXPathString("/html/head/title");
- assertion.setValidating(false);
- assertion.setTolerant(false);
- AssertionResult res = assertion.getResult(result);
- log.debug("failureMessage: " + res.getFailureMessage());
- assertTrue(res.isError());
- assertFalse(res.isFailure());
- }
-
- }
-
-
}
Modified: jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/ResponseAssertionTest.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/ResponseAssertionTest.java?rev=771840&r1=771839&r2=771840&view=diff
==============================================================================
--- jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/ResponseAssertionTest.java (original)
+++ jakarta/jmeter/trunk/test/src/org/apache/jmeter/assertions/ResponseAssertionTest.java Tue May 5 15:47:30 2009
@@ -191,4 +191,53 @@
assertTrue("Expecting failure",result.isFailure());
}
+ volatile int threadsRunning;
+
+ volatile int failed;
+
+ public void testThreadSafety() throws Exception {
+ Thread[] threads = new Thread[100];
+ for (int i = 0; i < threads.length; i++) {
+ threads[i] = new TestThread();
+ }
+ failed = 0;
+ for (int i = 0; i < threads.length; i++) {
+ threads[i].start();
+ threadsRunning++;
+ }
+ synchronized (this) {
+ while (threadsRunning > 0) {
+ wait();
+ }
+ }
+ assertEquals(failed, 0);
+ }
+
+ class TestThread extends Thread {
+ static final String TEST_STRING = "DAbale arroz a la zorra el abad.";
+
+ // Used to be 'dábale', but caused trouble on Gump. Reasons
+ // unknown.
+ static final String TEST_PATTERN = ".*A.*\\.";
+
+ public void run() {
+ ResponseAssertion assertion = new ResponseAssertion();
+ assertion.setTestFieldResponseData();
+ assertion.setToContainsType();
+ assertion.addTestString(TEST_PATTERN);
+ SampleResult response = new SampleResult();
+ response.setResponseData(TEST_STRING.getBytes());
+ for (int i = 0; i < 100; i++) {
+ AssertionResult result;
+ result = assertion.getResult(response);
+ if (result.isFailure() || result.isError()) {
+ failed++;
+ }
+ }
+ synchronized (ResponseAssertionTest.this) {
+ threadsRunning--;
+ ResponseAssertionTest.this.notifyAll();
+ }
+ }
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org