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:[EMAIL PROTECTED]">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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]