jakarta-jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s...@apache.org
Subject svn commit: r581862 - in /jakarta/jmeter/trunk: docs/ docs/images/screenshots/ docs/usermanual/ src/components/org/apache/jmeter/extractor/ src/components/org/apache/jmeter/extractor/gui/ test/src/org/apache/jmeter/extractor/ xdocs/ xdocs/images/screen...
Date Thu, 04 Oct 2007 11:45:56 GMT
Author: sebb
Date: Thu Oct  4 04:45:55 2007
New Revision: 581862

URL: http://svn.apache.org/viewvc?rev=581862&view=rev
Log:
Bug 43451 - Allow Regex Extractor to operate on Response Code/Message

Modified:
    jakarta/jmeter/trunk/docs/changes.html
    jakarta/jmeter/trunk/docs/images/screenshots/regex_extractor.png
    jakarta/jmeter/trunk/docs/usermanual/component_reference.html
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java
    jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/images/screenshots/regex_extractor.png
    jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml

Modified: jakarta/jmeter/trunk/docs/changes.html
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/changes.html?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/changes.html (original)
+++ jakarta/jmeter/trunk/docs/changes.html Thu Oct  4 04:45:55 2007
@@ -196,6 +196,16 @@
 						</li>
 									
 
+												<li	>
+								Property Display to show the value of System and JMeter properties and allow them
to be changed
+						</li>
+									
+
+												<li	>
+								Bug 43451 - Allow Regex Extractor to operate on Response Code/Message
+						</li>
+									
+
 						</ul>
 							  									 				<h4	>
 								Non-functional Improvements
@@ -2913,7 +2923,6 @@
 												<li	>
 								Extra Proxy Server options: 
 Create all samplers with keep-alive disabled 
-
 Add Separator markers between sets of samples 
 Add Response Assertion to first sampler in each set 
 						</li>

Modified: jakarta/jmeter/trunk/docs/images/screenshots/regex_extractor.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/regex_extractor.png?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
Binary files - no diff available.

Modified: jakarta/jmeter/trunk/docs/usermanual/component_reference.html
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/usermanual/component_reference.html?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/usermanual/component_reference.html (original)
+++ jakarta/jmeter/trunk/docs/usermanual/component_reference.html Thu Oct  4 04:45:55 2007
@@ -10295,13 +10295,11 @@
 				<tr><td>
 		  																			<p	>
 								Allows the user to extract values from a server response using a Perl-type regular
expression.  As a post-processor,
-this element will execute after each Sample request in its 
-											 			<a href="build-test-plan.html#scoping_rules">scope</a>
-										, applying the regular expression, extracting the requested values,
+this element will execute after each Sample request in its scope, applying the regular expression,
extracting the requested values,
 generate the template string, and store the result into the given variable name.
 						</p>
 															<p><b>Control Panel</b></p>
-						<div align="center"><img width='395' height='241' src="../images/screenshots/regex_extractor.png"></div>
+						<div align="center"><img width='494' height='257' src="../images/screenshots/regex_extractor.png"></div>
 											  									 			 <p>
 	<b>Parameters</b>
 	<table border="1" cellspacing="0" cellpadding="2">
@@ -10316,7 +10314,8 @@
 		</tr>
 			<tr>
 			<td>Response Field to check</td>
-			<td>						Body or Headers. These refer to the Sampler Response. Headers can be useful
for HTTP samples; it may not be present for other sample types.
+			<td>						Body, Headers, URL, Response Code, Response Message.
+        These refer to the Sampler Response. Headers can be useful for HTTP samples; it may
not be present for other sample types.
 			</td>
 			<td>
 											yes

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/RegexExtractor.java Thu
Oct  4 04:45:55 2007
@@ -63,6 +63,9 @@
 	public static final String USE_HDRS = "true"; // $NON-NLS-1$
 	public static final String USE_BODY = "false"; // $NON-NLS-1$
     public static final String USE_URL = "URL"; // $NON-NLS-1$
+	public static final String USE_CODE = "code"; // $NON-NLS-1$
+	public static final String USE_MESSAGE = "message"; // $NON-NLS-1$
+
 
 	private static final String REGEX = "RegexExtractor.regex"; // $NON-NLS-1$
 
@@ -108,9 +111,10 @@
 
 		Perl5Matcher matcher = JMeterUtils.getMatcher();
 		String inputString = 
-			useUrl() ? previousResult.getUrlAsString() // Bug 39707 
-			:
-			useHeaders() ? previousResult.getResponseHeaders()
+			  useUrl() ? previousResult.getUrlAsString() // Bug 39707 
+			: useHeaders() ? previousResult.getResponseHeaders()
+			: useCode() ? previousResult.getResponseCode() //Bug 43451
+			: useMessage() ? previousResult.getResponseMessage() //Bug 43451
 		    : previousResult.getResponseDataAsString() // Bug 36898
 		    ; 
    		if (log.isDebugEnabled()) {
@@ -360,14 +364,25 @@
 
 	// Allow for property not yet being set (probably only applies to Test cases)
 	public boolean useBody() {
-    	String body = getPropertyAsString(MATCH_AGAINST);
-        return body.length()==0 || USE_BODY.equalsIgnoreCase(body);// $NON-NLS-1$
+    	String prop = getPropertyAsString(MATCH_AGAINST);
+        return prop.length()==0 || USE_BODY.equalsIgnoreCase(prop);// $NON-NLS-1$
     }
 
 	public boolean useUrl() {
-    	String body = getPropertyAsString(MATCH_AGAINST);
-        return USE_URL.equalsIgnoreCase(body);
+    	String prop = getPropertyAsString(MATCH_AGAINST);
+        return USE_URL.equalsIgnoreCase(prop);
     }
+
+	public boolean useCode() {
+    	String prop = getPropertyAsString(MATCH_AGAINST);
+        return USE_CODE.equalsIgnoreCase(prop);
+	}
+
+	public boolean useMessage() {
+    	String prop = getPropertyAsString(MATCH_AGAINST);
+        return USE_MESSAGE.equalsIgnoreCase(prop);
+	}
+
 	public void setUseField(String actionCommand) {
 		setProperty(MATCH_AGAINST,actionCommand);
 	}

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java
(original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/gui/RegexExtractorGui.java
Thu Oct  4 04:45:55 2007
@@ -56,6 +56,10 @@
     
     private JRadioButton useURL;
 
+    private JRadioButton useCode;
+
+    private JRadioButton useMessage;
+
 	private ButtonGroup group;
 
 	public RegexExtractorGui() {
@@ -74,6 +78,8 @@
 			useHeaders.setSelected(re.useHeaders());
 			useBody.setSelected(re.useBody());
 	        useURL.setSelected(re.useUrl());
+	        useCode.setSelected(re.useCode());
+	        useMessage.setSelected(re.useMessage());
 			regexField.setText(re.getRegex());
 			templateField.setText(re.getTemplate());
 			defaultField.setText(re.getDefaultValue());
@@ -116,8 +122,6 @@
         super.clearGui();
         
         useBody.setSelected(true);
-        useHeaders.setSelected(false);
-        useURL.setSelected(false);
         
         regexField.setText(""); //$NON-NLS-1$
         templateField.setText(""); //$NON-NLS-1$
@@ -144,15 +148,21 @@
 		useBody = new JRadioButton(JMeterUtils.getResString("regex_src_body")); //$NON-NLS-1$
 		useHeaders = new JRadioButton(JMeterUtils.getResString("regex_src_hdrs")); //$NON-NLS-1$
         useURL = new JRadioButton(JMeterUtils.getResString("regex_src_url")); //$NON-NLS-1$
+        useCode = new JRadioButton(JMeterUtils.getResString("assertion_code_resp")); //$NON-NLS-1$
+        useMessage = new JRadioButton(JMeterUtils.getResString("assertion_message_resp"));
//$NON-NLS-1$
 
 		group = new ButtonGroup();
 		group.add(useBody);
 		group.add(useHeaders);
         group.add(useURL);
+        group.add(useCode);
+        group.add(useMessage);
 
 		panel.add(useBody);
 		panel.add(useHeaders);
         panel.add(useURL);
+        panel.add(useCode);
+        panel.add(useMessage);
 
 		useBody.setSelected(true);
 		
@@ -160,6 +170,8 @@
 		useBody.setActionCommand(RegexExtractor.USE_BODY);
 		useHeaders.setActionCommand(RegexExtractor.USE_HDRS);
 		useURL.setActionCommand(RegexExtractor.USE_URL);
+		useCode.setActionCommand(RegexExtractor.USE_CODE);
+		useMessage.setActionCommand(RegexExtractor.USE_MESSAGE);
 		
 		return panel;
 	}

Modified: jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java (original)
+++ jakarta/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestRegexExtractor.java Thu
Oct  4 04:45:55 2007
@@ -60,6 +60,8 @@
 					+ "</row>" + "</company-xmlext-query-ret>";
 			result.setResponseData(data.getBytes());
 			result.setResponseHeaders("Header1: Value1\nHeader2: Value2");
+			result.setResponseCode("abcd");
+			result.setResponseMessage("The quick brown fox");
 			vars = new JMeterVariables();
 			jmctx.setVariables(vars);
 			jmctx.setPreviousResult(result);
@@ -211,6 +213,29 @@
 			result.setURL(new URL("http://jakarta.apache.org/index.html?abcd"));
 			extractor.process();
 			assertEquals("index",vars.get("regVal"));
+		}
+
+		public void testVariableExtraction9() throws Exception {
+			extractor.setRegex("(\\w+)");
+			extractor.setTemplate("$1$");
+			extractor.setMatchNumber(1);
+			extractor.setUseField(RegexExtractor.USE_CODE);
+			assertFalse("useHdrs should be false", extractor.useHeaders());
+			assertFalse("useBody should be false", extractor.useBody());
+			assertFalse("useURL should be false", extractor.useUrl());
+			assertFalse("useMessage should be false", extractor.useMessage());
+			assertTrue("useCode should be true", extractor.useCode());
+			extractor.process();
+			assertEquals("abcd",vars.get("regVal"));
+			extractor.setUseField(RegexExtractor.USE_MESSAGE);
+			assertFalse("useHdrs should be false", extractor.useHeaders());
+			assertFalse("useBody should be false", extractor.useBody());
+			assertFalse("useURL should be false", extractor.useUrl());
+			assertTrue("useMessage should be true", extractor.useMessage());
+			assertFalse("useCode should be falsee", extractor.useCode());
+			extractor.setMatchNumber(3);
+			extractor.process();
+			assertEquals("brown",vars.get("regVal"));
 		}
 
         public void testNoDefault() throws Exception {

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu Oct  4 04:45:55 2007
@@ -46,6 +46,7 @@
 <li>Menu items now appear in execution order</li>
 <li>Test Plan items can now only be dropped/pasted into parts of the tree where they
are allowed</li>
 <li>Property Display to show the value of System and JMeter properties and allow them
to be changed</li>
+<li>Bug 43451 - Allow Regex Extractor to operate on Response Code/Message</li>
 </ul>
 
 <h4>Non-functional Improvements</h4>

Modified: jakarta/jmeter/trunk/xdocs/images/screenshots/regex_extractor.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/regex_extractor.png?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
Binary files - no diff available.

Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=581862&r1=581861&r2=581862&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Thu Oct  4 04:45:55 2007
@@ -3229,13 +3229,14 @@
 		is applied only to a particular sampler, add it as a child of the sampler.
 	<br></br>
 	</description>
-<component name="Regular Expression Extractor" index="&sect-num;.8.1"  width="395"
height="241" screenshot="regex_extractor.png">
+<component name="Regular Expression Extractor" index="&sect-num;.8.1"  width="494"
height="257" screenshot="regex_extractor.png">
 <description><p>Allows the user to extract values from a server response using
a Perl-type regular expression.  As a post-processor,
-this element will execute after each Sample request in its <scope/>, applying the regular
expression, extracting the requested values,
+this element will execute after each Sample request in its scope, applying the regular expression,
extracting the requested values,
 generate the template string, and store the result into the given variable name.</p></description>
 <properties>
         <property name="Name" required="">Descriptive name for this element that is
shown in the tree.</property>
-        <property name="Response Field to check" required="yes">Body or Headers. These
refer to the Sampler Response. Headers can be useful for HTTP samples; it may not be present
for other sample types.</property>
+        <property name="Response Field to check" required="yes">Body, Headers, URL,
Response Code, Response Message.
+        These refer to the Sampler Response. Headers can be useful for HTTP samples; it may
not be present for other sample types.</property>
         <property name="Reference Name" required="Yes">The name of the JMeter variable
in which to store the result.  Also note that each group is stored as [refname]_g#, where
[refname] is the string you entered as the reference name, and # is the group number, where
group 0 is the entire match, group 1 is the match from the first set of parentheses, etc.</property>
         <property name="Regular Expression" required="Yes">The regular expression used
to parse the response data. 
         This must contain at least one set of parentheses "()" to capture a portion of the
string, unless using the group $0$.



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


Mime
View raw message