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/10 18:03:40 UTC

svn commit: r703510 - in /jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions: DurationAssertion.java ResponseAssertion.java SizeAssertion.java gui/AssertionGui.java gui/DurationAssertionGui.java gui/SizeAssertionGui.java

Author: sebb
Date: Fri Oct 10 09:03:40 2008
New Revision: 703510

URL: http://svn.apache.org/viewvc?rev=703510&view=rev
Log:
Bug 45903 - allow Assertions to apply to sub-samples
Implemented for Duration, Response and Size

Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/DurationAssertion.java
    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/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/DurationAssertionGui.java
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SizeAssertionGui.java

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/DurationAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/DurationAssertion.java?rev=703510&r1=703509&r2=703510&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/DurationAssertion.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/DurationAssertion.java Fri Oct 10 09:03:40 2008
@@ -22,17 +22,15 @@
 import java.text.MessageFormat;
 
 import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.testelement.AbstractTestElement;
+import org.apache.jmeter.testelement.AbstractScopedAssertion;
 import org.apache.jmeter.util.JMeterUtils;
 
 /**
  * Checks if an Sample is sampled within a specified time-frame. If the duration
  * is larger than the timeframe the Assertion is considered a failure.
  * 
- * author <a href="mailto:wolfram.rittmeyer@web.de">Wolfram Rittmeyer</a>
- * @version $Revision$, $Date$
  */
-public class DurationAssertion extends AbstractTestElement implements Serializable, Assertion {
+public class DurationAssertion extends AbstractScopedAssertion implements Serializable, Assertion {
     /** Key for storing assertion-informations in the jmx-file. */
     public static final String DURATION_KEY = "DurationAssertion.duration"; // $NON-NLS-1$
 

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=703510&r1=703509&r2=703510&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 Oct 10 09:03:40 2008
@@ -23,7 +23,7 @@
 import java.util.ArrayList;
 
 import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.testelement.AbstractTestElement;
+import org.apache.jmeter.testelement.AbstractScopedAssertion;
 import org.apache.jmeter.testelement.property.CollectionProperty;
 import org.apache.jmeter.testelement.property.IntegerProperty;
 import org.apache.jmeter.testelement.property.JMeterProperty;
@@ -43,7 +43,7 @@
 /**
  * Test element to handle Response Assertions, @see AssertionGui
  */
-public class ResponseAssertion extends AbstractTestElement implements Serializable, Assertion {
+public class ResponseAssertion extends AbstractScopedAssertion implements Serializable, Assertion {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
     private final static String TEST_FIELD = "Assertion.test_field";  // $NON-NLS-1$

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=703510&r1=703509&r2=703510&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 Fri Oct 10 09:03:40 2008
@@ -22,7 +22,7 @@
 import java.text.MessageFormat;
 
 import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.testelement.AbstractTestElement;
+import org.apache.jmeter.testelement.AbstractScopedAssertion;
 import org.apache.jmeter.testelement.property.IntegerProperty;
 import org.apache.jmeter.testelement.property.LongProperty;
 import org.apache.jmeter.util.JMeterUtils;
@@ -33,7 +33,7 @@
  * Checks if the results of a Sample matches a particular size.
  * 
  */
-public class SizeAssertion extends AbstractTestElement implements Serializable, Assertion {
+public class SizeAssertion extends AbstractScopedAssertion implements Serializable, Assertion {
 
     private static final long serialVersionUID = 233L;
 

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java?rev=703510&r1=703509&r2=703510&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java Fri Oct 10 09:03:40 2008
@@ -134,6 +134,8 @@
         if (el instanceof ResponseAssertion) {
             ResponseAssertion ra = (ResponseAssertion) el;
 
+            saveScopeSettings(ra);
+            
             ra.clearTestStrings();
             String[] testStrings = tableModel.getData().getColumn(COL_NAME);
             for (int i = 0; i < testStrings.length; i++) {
@@ -204,6 +206,8 @@
         super.configure(el);
         ResponseAssertion model = (ResponseAssertion) el;
 
+        showScopeSettings(model);
+        
         if (model.isContainsType()) {
             containsBox.setSelected(true);
         } else if (model.isEqualsType()) {
@@ -255,6 +259,7 @@
         setBorder(makeBorder());
 
         box.add(makeTitlePanel());
+        box.add(createScopePanel());
         box.add(createFieldPanel());
         box.add(createTypePanel());
         add(box, BorderLayout.NORTH);

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/DurationAssertionGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/DurationAssertionGui.java?rev=703510&r1=703509&r2=703510&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/DurationAssertionGui.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/DurationAssertionGui.java Fri Oct 10 09:03:40 2008
@@ -30,6 +30,9 @@
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.util.JMeterUtils;
 
+/**
+ * GUI for {@link DurationAssertion}
+ */
 public class DurationAssertionGui extends AbstractAssertionGui {
 
     private JTextField duration;
@@ -59,7 +62,11 @@
      */
     public void modifyTestElement(TestElement el) {
         configureTestElement(el);
-        el.setProperty(DurationAssertion.DURATION_KEY,duration.getText());
+        if (el instanceof DurationAssertion) {
+            DurationAssertion assertion = (DurationAssertion) el;
+            assertion.setProperty(DurationAssertion.DURATION_KEY,duration.getText());
+            saveScopeSettings(assertion);
+        }
     }
 
     /**
@@ -73,7 +80,11 @@
 
     public void configure(TestElement el) {
         super.configure(el);
-        duration.setText(el.getPropertyAsString(DurationAssertion.DURATION_KEY));
+        if (el instanceof DurationAssertion){
+            DurationAssertion da = (DurationAssertion) el;
+            duration.setText(da.getPropertyAsString(DurationAssertion.DURATION_KEY));
+            showScopeSettings(da);
+        }
     }
 
     private void init() {
@@ -82,7 +93,8 @@
 
         add(makeTitlePanel(), BorderLayout.NORTH);
 
-        JPanel mainPanel = new JPanel(new BorderLayout());
+        JPanel mainPanel = new VerticalPanel();
+        mainPanel.add(createScopePanel());
 
         // USER_INPUT
         VerticalPanel durationPanel = new VerticalPanel();
@@ -99,7 +111,7 @@
         durationLabel.setLabelFor(duration);
         durationPanel.add(labelPanel);
         
-        mainPanel.add(durationPanel, BorderLayout.NORTH);
+        mainPanel.add(durationPanel);
         add(mainPanel, BorderLayout.CENTER);
     }
 }

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SizeAssertionGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SizeAssertionGui.java?rev=703510&r1=703509&r2=703510&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SizeAssertionGui.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/SizeAssertionGui.java Fri Oct 10 09:03:40 2008
@@ -37,6 +37,9 @@
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.gui.layout.VerticalLayout;
 
+/**
+ * GUI for {@link SizeAssertion}
+ */
 public class SizeAssertionGui extends AbstractAssertionGui implements FocusListener, ActionListener {
 
     private JTextField size;
@@ -54,10 +57,6 @@
         return "size_assertion_title"; //$NON-NLS-1$
     }
 
-    public String getSizeAttributesTitle() {
-        return JMeterUtils.getResString("size_assertion_size_test"); //$NON-NLS-1$
-    }
-
     public TestElement createTestElement() {
         SizeAssertion el = new SizeAssertion();
         modifyTestElement(el);
@@ -78,8 +77,10 @@
         } catch (NumberFormatException e) {
             assertionSize = Long.MAX_VALUE;
         }
-        ((SizeAssertion) el).setAllowedSize(assertionSize);
-        ((SizeAssertion) el).setCompOper(getState());
+        SizeAssertion assertion = (SizeAssertion) el;
+        assertion.setAllowedSize(assertionSize);
+        assertion.setCompOper(getState());
+        saveScopeSettings(assertion);
     }
     
     /**
@@ -103,6 +104,7 @@
         SizeAssertion assertion = (SizeAssertion) el;
         size.setText(String.valueOf(assertion.getAllowedSize()));
         setState(assertion.getCompOper());
+        showScopeSettings(assertion);
     }
 
     /**
@@ -143,10 +145,12 @@
 
         add(makeTitlePanel());
 
+        add(createScopePanel());
+        
         // USER_INPUT
         JPanel sizePanel = new JPanel();
         sizePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
-                getSizeAttributesTitle()));
+                JMeterUtils.getResString("size_assertion_size_test"))); //$NON-NLS-1$
 
         sizePanel.add(new JLabel(JMeterUtils.getResString("size_assertion_label"))); //$NON-NLS-1$
         size = new JTextField(5);



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org