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 2007/03/17 18:36:10 UTC

svn commit: r519376 - in /jakarta/jmeter/branches/rel-2-2: src/components/org/apache/jmeter/assertions/ src/components/org/apache/jmeter/visualizers/ src/core/org/apache/jmeter/assertions/ src/core/org/apache/jmeter/resources/ xdocs/

Author: sebb
Date: Sat Mar 17 10:36:09 2007
New Revision: 519376

URL: http://svn.apache.org/viewvc?view=rev&rev=519376
Log:
Bug 41873 - Add name to AssertionResult and display AssertionResult in ViewResultsFullVisualizer

Modified:
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/DurationAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/HTMLAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/MD5HexAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/SizeAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLSchemaAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XPathAssertion.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
    jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/assertions/AssertionResult.java
    jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties
    jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java Sat Mar 17 10:36:09 2007
@@ -96,7 +96,7 @@
 	 * @see org.apache.jmeter.assertions.Assertion#getResult(org.apache.jmeter.samplers.SampleResult)
 	 */
 	public AssertionResult getResult(SampleResult response) {
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 
 		if (bshInterpreter == null) {
 			result.setFailure(true);

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/DurationAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/DurationAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/DurationAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/DurationAssertion.java Sat Mar 17 10:36:09 2007
@@ -43,7 +43,7 @@
 	 * AssertionResult will reflect the success of the Sample.
 	 */
 	public AssertionResult getResult(SampleResult response) {
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 		result.setFailure(false);
 		long duration=getAllowedDuration();
 		if (duration > 0) {

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/HTMLAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/HTMLAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/HTMLAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Sat Mar 17 10:36:09 2007
@@ -75,7 +75,7 @@
 		log.debug("HTMLAssertions.getResult() called");
 
 		// no error as default
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 
 		if (inResponse.getResponseData().length == 0) {
 			return result.setResultForNull();

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/MD5HexAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/MD5HexAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/MD5HexAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/MD5HexAssertion.java Sat Mar 17 10:36:09 2007
@@ -51,7 +51,7 @@
 	 */
 	public AssertionResult getResult(SampleResult response) {
 
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 		result.setFailure(false);
 		byte[] resultData = response.getResponseData();
 

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Sat Mar 17 10:36:09 2007
@@ -254,7 +254,7 @@
 	AssertionResult evaluateResponse(SampleResult response) {
 		boolean pass = true;
 		boolean not = (NOT & getTestType()) > 0;
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 		String toCheck = ""; // The string to check (Url or data)
 
 		if (getAssumeSuccess()) {

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/SizeAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/SizeAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/SizeAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/SizeAssertion.java Sat Mar 17 10:36:09 2007
@@ -64,7 +64,7 @@
 	 * AssertionResult will reflect the success of the Sample.
 	 */
 	public AssertionResult getResult(SampleResult response) {
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 		result.setFailure(false);
 		resultData = response.getResponseData();
 		long resultSize = resultData.length;

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLAssertion.java Sat Mar 17 10:36:09 2007
@@ -53,7 +53,7 @@
 	 */
 	public AssertionResult getResult(SampleResult response) {
 		// no error as default
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 		byte[] responseData = response.getResponseData();
 		if (responseData.length == 0) {
 			return result.setResultForNull();

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLSchemaAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLSchemaAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLSchemaAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XMLSchemaAssertion.java Sat Mar 17 10:36:09 2007
@@ -63,7 +63,7 @@
 	 * 
 	 */
 	public AssertionResult getResult(SampleResult response) {
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 		// Note: initialised with error = failure = false
 
 		byte data[] = response.getResponseData();

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XPathAssertion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XPathAssertion.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XPathAssertion.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/XPathAssertion.java Sat Mar 17 10:36:09 2007
@@ -69,7 +69,7 @@
 	 */
 	public AssertionResult getResult(SampleResult response) {
 		// no error as default
-		AssertionResult result = new AssertionResult();
+		AssertionResult result = new AssertionResult(getName());
 		byte[] responseData = response.getResponseData();
 		if (responseData.length == 0) {
 			return result.setResultForNull();

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java Sat Mar 17 10:36:09 2007
@@ -74,6 +74,7 @@
 
 				if (item.isFailure() || item.isError()) {
 					display.append("\n\t"); // $NON-NLS-1$
+					display.append(item.getName() != null ? item.getName() + " : " : "");
 					display.append(item.getFailureMessage());
 				}
 			}

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java Sat Mar 17 10:36:09 2007
@@ -70,6 +70,7 @@
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.jmeter.assertions.AssertionResult;
 import org.apache.jmeter.samplers.Clearable;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.util.JMeterUtils;
@@ -144,9 +145,13 @@
 
 	private JScrollPane resultsScrollPane;
 
+	private JPanel resultsPane;
+
 	private JLabel imageLabel;
 
 	private JTextArea sampleDataField;
+	
+	private JPanel requestPane;
 
 	private JRadioButton textButton;
 
@@ -158,6 +163,8 @@
 
 	private JTree jTree;
 
+	private JTabbedPane rightSide;
+	
 	private static final ImageIcon imageSuccess = JMeterUtils.getImage(
 	        JMeterUtils.getPropDefault("viewResultsTree.success", "icon_success_sml.gif"));
 
@@ -187,9 +194,21 @@
 		if (log.isDebugEnabled()) {
 			log.debug("updateGui1 : sample result - " + res);
 		}
+		// Add sample
 		DefaultMutableTreeNode currNode = new DefaultMutableTreeNode(res);
 		treeModel.insertNodeInto(currNode, root, root.getChildCount());
 		addSubResults(currNode, res);
+		// Add any assertion that failed as children of the sample node
+		AssertionResult assertionResults[] = res.getAssertionResults();
+		int assertionIndex = 0;
+		for (int j = 0; j < assertionResults.length; j++) {
+			AssertionResult item = assertionResults[j];
+			
+			if (item.isFailure() || item.isError()) {
+				DefaultMutableTreeNode assertionNode = new DefaultMutableTreeNode(item);
+				treeModel.insertNodeInto(assertionNode, currNode, assertionIndex++);
+			}
+		}			
 
 		if (root.getChildCount() == 1) {
 			jTree.expandPath(new TreePath(root));
@@ -266,90 +285,116 @@
 			sampleDataField.setText(""); // $NON-NLS-1$
 			results.setText(""); // $NON-NLS-1$
 			if (node != null) {
-				SampleResult res = (SampleResult) node.getUserObject();
+				Object userObject = node.getUserObject();
+				if(userObject instanceof SampleResult) {					
+					SampleResult res = (SampleResult) userObject;
+					
+					// We are displaying a SampleResult
+					setupTabPaneForSampleResult();
 
-				if (log.isDebugEnabled()) {
-					log.debug("valueChanged1 : sample result - " + res);
-				}
+					if (log.isDebugEnabled()) {
+						log.debug("valueChanged1 : sample result - " + res);
+					}
 
-				if (res != null) {
-					// load time label
+					if (res != null) {
+						// load time label
 
-					log.debug("valueChanged1 : load time - " + res.getTime());
-                    String sd=res.getSamplerData();
-					if (sd != null) {
-						String rh = res.getRequestHeaders();
-						if (rh != null) {
-                            StringBuffer sb = new StringBuffer(sd.length()+rh.length()+20);
-                            sb.append(sd);
-                            sb.append("\nRequest Headers:\n");
-                            sb.append(rh);
-							sd = sb.toString();
-                        }
-						sampleDataField.setText(sd);
-                    }
-
-					statsDoc.insertString(statsDoc.getLength(), "Thread Name: "+res.getThreadName()+"\n", null);
-                    String startTime = new Date(res.getStartTime()).toString();
-                    statsDoc.insertString(statsDoc.getLength(), "Sample Start: "+startTime+"\n", null);
-					statsDoc.insertString(statsDoc.getLength(), "Load time: " + res.getTime() + "\n", null);
-
-					String responseCode = res.getResponseCode();
-					log.debug("valueChanged1 : response code - " + responseCode);
-
-					int responseLevel = 0;
-					if (responseCode != null) {
-						try {
-							responseLevel = Integer.parseInt(responseCode) / 100;
-						} catch (NumberFormatException numberFormatException) {
-							// no need to change the foreground color
+						log.debug("valueChanged1 : load time - " + res.getTime());
+						String sd = res.getSamplerData();
+						if (sd != null) {
+							String rh = res.getRequestHeaders();
+							if (rh != null) {
+								StringBuffer sb = new StringBuffer(sd.length() + rh.length()+20);
+								sb.append(sd);
+								sb.append("\nRequest Headers:\n");
+								sb.append(rh);
+								sd = sb.toString();
+							}
+							sampleDataField.setText(sd);
 						}
-					}
 
-					Style style = null;
-					switch (responseLevel) {
-					case 3:
-						style = statsDoc.getStyle(STYLE_REDIRECT);
-						break;
-					case 4:
-						style = statsDoc.getStyle(STYLE_CLIENT_ERROR);
-						break;
-					case 5:
-						style = statsDoc.getStyle(STYLE_SERVER_ERROR);
-						break;
-					}
-					statsDoc.insertString(statsDoc.getLength(), "HTTP response code: " + responseCode + "\n", style);
-
-					// response message label
-					String responseMsgStr = res.getResponseMessage();
+						statsDoc.insertString(statsDoc.getLength(), "Thread Name: " + res.getThreadName() + "\n", null);
+						String startTime = new Date(res.getStartTime()).toString();
+						statsDoc.insertString(statsDoc.getLength(), "Sample Start: " + startTime + "\n", null);
+						statsDoc.insertString(statsDoc.getLength(), "Load time: " + res.getTime() + "\n", null);
+
+						String responseCode = res.getResponseCode();
+						log.debug("valueChanged1 : response code - " + responseCode);
+
+						int responseLevel = 0;
+						if (responseCode != null) {
+							try {
+								responseLevel = Integer.parseInt(responseCode) / 100;
+							} catch (NumberFormatException numberFormatException) {
+								// no need to change the foreground color
+							}
+						}
 
-					log.debug("valueChanged1 : response message - " + responseMsgStr);
-					statsDoc
-							.insertString(statsDoc.getLength(), "HTTP response message: " + responseMsgStr + "\n", null);
-
-					statsDoc.insertString(statsDoc.getLength(), "\nHTTP response headers:\n" + res.getResponseHeaders()
-							+ "\n", null);
-
-					// get the text response and image icon
-					// to determine which is NOT null
-					if ((SampleResult.TEXT).equals(res.getDataType())) // equals(null)
-																		// is OK
-					{
-						String response = getResponseAsString(res);
-						if (command.equals(TEXT_COMMAND)) {
-							showTextResponse(response);
-						} else if (command.equals(HTML_COMMAND)) {
-							showRenderedResponse(response, res);
-						} else if (command.equals(XML_COMMAND)) {
-							showRenderXMLResponse(response);
+						Style style = null;
+						switch (responseLevel) {
+						case 3:
+							style = statsDoc.getStyle(STYLE_REDIRECT);
+							break;
+						case 4:
+							style = statsDoc.getStyle(STYLE_CLIENT_ERROR);
+							break;
+						case 5:
+							style = statsDoc.getStyle(STYLE_SERVER_ERROR);
+							break;
 						}
-					} else {
-						byte[] responseBytes = res.getResponseData();
-						if (responseBytes != null) {
-							showImage(new ImageIcon(responseBytes));
+						statsDoc.insertString(statsDoc.getLength(), "HTTP response code: " + responseCode + "\n", style);
+
+						// response message label
+						String responseMsgStr = res.getResponseMessage();
+
+						log.debug("valueChanged1 : response message - " + responseMsgStr);
+						statsDoc.insertString(statsDoc.getLength(), "HTTP response message: " + responseMsgStr + "\n", null);
+
+						statsDoc.insertString(statsDoc.getLength(), "\nHTTP response headers:\n" + res.getResponseHeaders() + "\n", null);
+
+						// get the text response and image icon
+						// to determine which is NOT null
+						if ((SampleResult.TEXT).equals(res.getDataType())) // equals(null)
+																			// is OK
+						{
+							String response = getResponseAsString(res);
+							if (command.equals(TEXT_COMMAND)) {
+								showTextResponse(response);
+							} else if (command.equals(HTML_COMMAND)) {
+								showRenderedResponse(response, res);
+							} else if (command.equals(XML_COMMAND)) {
+								showRenderXMLResponse(response);
+							}
+						} else {
+							byte[] responseBytes = res.getResponseData();
+							if (responseBytes != null) {
+								showImage(new ImageIcon(responseBytes));
+							}
 						}
 					}
 				}
+				else if(userObject instanceof AssertionResult) {
+					AssertionResult res = (AssertionResult) userObject;
+					
+					// We are displaying an AssertionResult
+					setupTabPaneForAssertionResult();
+					
+					if (log.isDebugEnabled()) {
+						log.debug("valueChanged1 : sample result - " + res);
+					}
+
+					if (res != null) {
+						statsDoc.insertString(statsDoc.getLength(),
+								"Assertion error: " + res.isError() + "\n",
+								null);
+						statsDoc.insertString(statsDoc.getLength(),
+								"Assertion failure: " + res.isFailure() + "\n",
+								null);
+						statsDoc.insertString(statsDoc.getLength(),
+								"Assertion failure message : " + res.getFailureMessage() + "\n",
+								null);
+					}
+				}
 			}
 		} catch (BadLocationException exc) {
 			log.error("Error setting statistics text", exc);
@@ -600,15 +645,42 @@
 		add(makeTitlePanel(), BorderLayout.NORTH);
 
 		Component leftSide = createLeftPanel();
-		JTabbedPane rightSide = new JTabbedPane();
-
+		rightSide = new JTabbedPane();
+		// Add the common tab
 		rightSide.addTab(JMeterUtils.getResString("view_results_tab_sampler"), createResponseMetadataPanel()); // $NON-NLS-1$
-		rightSide.addTab(JMeterUtils.getResString("view_results_tab_request"), createRequestPanel()); // $NON-NLS-1$
-		rightSide.addTab(JMeterUtils.getResString("view_results_tab_response"), createResponseDataPanel()); // $NON-NLS-1$
+		// Create the panels for the other tabs
+		requestPane = createRequestPanel();
+		resultsPane = createResponseDataPanel();
 
 		JSplitPane mainSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftSide, rightSide);
 		add(mainSplit, BorderLayout.CENTER);
 	}
+	
+	private void setupTabPaneForSampleResult() {
+		// Set the title for the first tab
+		rightSide.setTitleAt(0, JMeterUtils.getResString("view_results_tab_sampler"));
+		// Add the other tabs if not present
+		if(rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_request")) < 0) { // $NON-NLS-1$
+			rightSide.addTab(JMeterUtils.getResString("view_results_tab_request"), requestPane); // $NON-NLS-1$
+		}
+		if(rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_response")) < 0) { // $NON-NLS-1$
+			rightSide.addTab(JMeterUtils.getResString("view_results_tab_response"), resultsPane); // $NON-NLS-1$
+		}
+	}
+	
+	private void setupTabPaneForAssertionResult() {
+		// Set the title for the first tab
+		rightSide.setTitleAt(0, JMeterUtils.getResString("view_results_tab_assertion"));
+		// Remove the other tabs if present
+		int requestTabIndex = rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_request")); // $NON-NLS-1$
+		if(requestTabIndex >= 0) {
+			rightSide.removeTabAt(requestTabIndex);
+		}
+		int responseTabIndex = rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_response")); // $NON-NLS-1$
+		if(responseTabIndex >= 0) {
+			rightSide.removeTabAt(responseTabIndex);
+		}
+	}
 
 	private Component createLeftPanel() {
 		SampleResult rootSampleResult = new SampleResult();
@@ -651,7 +723,7 @@
 		return pane;
 	}
 
-	private Component createRequestPanel() {
+	private JPanel createRequestPanel() {
 		sampleDataField = new JTextArea();
 		sampleDataField.setEditable(false);
 		sampleDataField.setLineWrap(true);
@@ -662,7 +734,7 @@
 		return pane;
 	}
 
-	private Component createResponseDataPanel() {
+	private JPanel createResponseDataPanel() {
 		results = new JEditorPane();
 		results.setEditable(false);
 
@@ -680,7 +752,18 @@
 		public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
 				boolean leaf, int row, boolean focus) {
 			super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, focus);
-			if (!((SampleResult) ((DefaultMutableTreeNode) value).getUserObject()).isSuccessful()) {
+			boolean failure = true;
+			Object userObject = ((DefaultMutableTreeNode) value).getUserObject();
+			if(userObject instanceof SampleResult) {
+				failure = !(((SampleResult) userObject).isSuccessful());
+			}
+			else if(userObject instanceof AssertionResult) {
+				AssertionResult assertion = (AssertionResult) userObject;
+				failure =  assertion.isError() || assertion.isFailure();
+			}
+			
+			// Set the status for the node
+			if (failure) {
 				this.setForeground(Color.red);
 				this.setIcon(imageFailure);
 			} else {

Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/assertions/AssertionResult.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/assertions/AssertionResult.java?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/assertions/AssertionResult.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/assertions/AssertionResult.java Sat Mar 17 10:36:09 2007
@@ -22,11 +22,13 @@
 
 /**
  * @author Michael Stover
- * @version $Revision$
  */
 public class AssertionResult implements Serializable {
-	public static final String RESPONSE_WAS_NULL = "Response was null";
+	public static final String RESPONSE_WAS_NULL = "Response was null"; // $NON-NLS-1$
 
+	/** Name of the assertion. */
+	private String name;
+	
 	/** True if the assertion failed. */
 	private boolean failure;
 
@@ -39,11 +41,40 @@
 	/**
 	 * Create a new Assertion Result. The result will indicate no failure or
 	 * error.
+	 * @deprecated - use the named constructor
 	 */
-	public AssertionResult() {
+	AssertionResult() {
+	}
+	
+	/**
+	 * Create a new Assertion Result. The result will indicate no failure or
+	 * error.
+	 * 
+	 * @param name the name of the assertion
+	 */
+	public AssertionResult(String name) {
+		setName(name);
+	}
+	
+	/**
+	 * Get the name of the assertion
+	 * 
+	 * @return the name of the assertion
+	 */
+	public String getName() {
+		return name;
 	}
 
 	/**
+	 * Set the name of the assertion
+	 * 
+	 * @param name the name of the assertion
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	/**
 	 * Check if the assertion failed. If it failed, the failure message may give
 	 * more details about the failure.
 	 * 
@@ -132,4 +163,7 @@
 		return this;
 	}
 
+	public String toString() {
+		return getName() != null ? getName() : super.toString();
+	}
 }

Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties Sat Mar 17 10:36:09 2007
@@ -760,6 +760,7 @@
 view_results_tab_request=Request
 view_results_tab_response=Response data
 view_results_tab_sampler=Sampler result
+view_results_tab_assertion=Assertion result
 view_results_title=View Results
 view_results_tree_title=View Results Tree
 warning=Warning!

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=519376&r1=519375&r2=519376
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Sat Mar 17 10:36:09 2007
@@ -120,6 +120,7 @@
 <li>New -j option to easily change jmeter log file</li>
 <li>Bug 41259 - Comment field added to all test elements</li>
 <li>Add standard deviation to Summary Report</li>
+<li>Bug 41873 - Add name to AssertionResult and display AssertionResult in ViewResultsFullVisualizer</li>
 </ul>
 
 <h4>Non-functional improvements:</h4>



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