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/06/27 03:09:41 UTC
svn commit: r672065 - in /jakarta/jmeter/trunk: bin/
docs/images/screenshots/ src/components/org/apache/jmeter/visualizers/
xdocs/ xdocs/images/screenshots/ xdocs/usermanual/
Author: sebb
Date: Thu Jun 26 18:09:41 2008
New Revision: 672065
URL: http://svn.apache.org/viewvc?rev=672065&view=rev
Log:
Add BSF Listener element
Added:
jakarta/jmeter/trunk/docs/images/screenshots/bsf_listener.png (with props)
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListener.java (with props)
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerBeanInfo.java (with props)
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerResources.properties (with props)
jakarta/jmeter/trunk/xdocs/images/screenshots/bsf_listener.png (with props)
Modified:
jakarta/jmeter/trunk/bin/saveservice.properties
jakarta/jmeter/trunk/xdocs/changes.xml
jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
Modified: jakarta/jmeter/trunk/bin/saveservice.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/saveservice.properties?rev=672065&r1=672064&r2=672065&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/saveservice.properties (original)
+++ jakarta/jmeter/trunk/bin/saveservice.properties Thu Jun 26 18:09:41 2008
@@ -76,6 +76,7 @@
BeanShellSamplerGui=org.apache.jmeter.protocol.java.control.gui.BeanShellSamplerGui
BeanShellTimer=org.apache.jmeter.timers.BeanShellTimer
BSFAssertion=org.apache.jmeter.assertions.BSFAssertion
+BSFListener=org.apache.jmeter.visualizers.BSFListener
BSFPreProcessor=org.apache.jmeter.modifiers.BSFPreProcessor
BSFPostProcessor=org.apache.jmeter.extractor.BSFPostProcessor
BSFSampler=org.apache.jmeter.protocol.java.sampler.BSFSampler
Added: jakarta/jmeter/trunk/docs/images/screenshots/bsf_listener.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/bsf_listener.png?rev=672065&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/jmeter/trunk/docs/images/screenshots/bsf_listener.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListener.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListener.java?rev=672065&view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListener.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListener.java Thu Jun 26 18:09:41 2008
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.jmeter.visualizers;
+
+import org.apache.bsf.BSFException;
+import org.apache.bsf.BSFManager;
+import org.apache.jmeter.samplers.SampleEvent;
+import org.apache.jmeter.samplers.SampleListener;
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.testbeans.TestBean;
+import org.apache.jmeter.util.BSFTestElement;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
+
+public class BSFListener extends BSFTestElement
+ implements Cloneable, SampleListener, TestBean, Visualizer {
+// N.B. Needs to implement Visualizer so that TestBeanGUI can find the correct GUI class
+
+ private static final Logger log = LoggingManager.getLoggerForClass();
+
+ private static final long serialVersionUID = 234L;
+
+ public void sampleOccurred(SampleEvent event) {
+ try {
+ BSFManager mgr = getManager();
+ if (mgr == null) {
+ log.error("Problem creating BSF manager");
+ return;
+ }
+ mgr.declareBean("sampleEvent", event, SampleEvent.class);
+ SampleResult result = event.getResult();
+ mgr.declareBean("sampleResult", result, SampleResult.class);
+ processFileOrScript(mgr);
+ mgr.terminate();
+ } catch (BSFException e) {
+ log.warn("Problem in BSF script "+e);
+ }
+ }
+
+ public void sampleStarted(SampleEvent e) {
+ }
+
+ public void sampleStopped(SampleEvent e) {
+ }
+
+ public void add(SampleResult sample) {
+ }
+
+ public boolean isStats() {
+ return false;
+ }
+}
Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListener.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerBeanInfo.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerBeanInfo.java?rev=672065&view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerBeanInfo.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerBeanInfo.java Thu Jun 26 18:09:41 2008
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.jmeter.visualizers;
+
+import org.apache.jmeter.util.BSFBeanInfoSupport;
+
+public class BSFListenerBeanInfo extends BSFBeanInfoSupport {
+
+ public BSFListenerBeanInfo() {
+ super(BSFListener.class);
+ }
+
+}
Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerBeanInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerBeanInfo.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerResources.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerResources.properties?rev=672065&view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerResources.properties (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerResources.properties Thu Jun 26 18:09:41 2008
@@ -0,0 +1,28 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+displayName=BSF Listener
+scriptingLanguage.displayName=Script language (e.g. beanshell, javascript, jexl)
+scriptLanguage.displayName=Language
+scriptLanguage.shortDescription=Name of BSF language, e.g. beanshell, javascript, jexl
+scripting.displayName=Script (variables: ctx vars props sampleResult (aka prev) sampleEvent sampler log Label Filename Parameters args[] OUT)
+script.displayName=Script
+script.shortDescription=Script in the appropriate BSF language
+parameterGroup.displayName=Parameters to be passed to script (=> String Parameters and String []args)
+parameters.displayName=Parameters
+parameters.shortDescription=Parameters to be passed to the file or script
+filenameGroup.displayName=Script file (overrides script)
+filename.displayName=File Name
+filename.shortDescription=Script file (overrides script)
\ No newline at end of file
Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/BSFListenerResources.properties
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=672065&r1=672064&r2=672065&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu Jun 26 18:09:41 2008
@@ -77,6 +77,7 @@
<li>The "prev" and "sampler" objects are now defined for BSF test elements</li>
<li>Prompt to overwrite an existing file when first saving a new test plan</li>
<li>The test element "Save Results to a file" is now shown as a Listener</li>
+<li>Correct TestBeans to show the correct popup menu for Listeners</li>
</ul>
<h3>Improvements</h3>
@@ -84,6 +85,7 @@
<li>LDAP result data now formatted with line breaks</li>
<li>Add OUT variable to jexl function</li>
<li>Save Responses to a file can save the generated filename(s) to variables.</li>
+<li>Add BSF Listener element</li>
</ul>
<h3>Non-functional changes</h3>
Added: jakarta/jmeter/trunk/xdocs/images/screenshots/bsf_listener.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/bsf_listener.png?rev=672065&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/jmeter/trunk/xdocs/images/screenshots/bsf_listener.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=672065&r1=672064&r2=672065&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Thu Jun 26 18:09:41 2008
@@ -2173,6 +2173,44 @@
</properties>
</component>
+<component name="BSF Listener" index="§-num;.3.17" width="736" height="369" screenshot="bsf_listener.png">
+<description>
+<p>
+The BSF Listener allows BSF script code to be applied to sample results.
+</p>
+</description>
+<properties>
+ <property name="Name" required="No">Descriptive name for this element that is shown in the tree.</property>
+ <property name="Language" required="Yes">The BSF language to be used</property>
+ <property name="Parameters" required="No">Parameters to pass to the script.
+ The parameters are stored in the following variables:
+ <ul>
+ <li>Parameters - string containing the parameters as a single variable</li>
+ <li>args - String array containing parameters, split on white-space</li>
+ </ul></property>
+ <property name="Script file" required="No">A file containing the script to run.</property>
+ <property name="Script" required="Yes (unless script file is provided)">The script to run.</property>
+</properties>
+<p>
+The script (or file) is processed using the BSFEngine.exec() method, which does not return a value.
+</p>
+<p>The following variables are set up for use by the script:</p>
+<ul>
+<li>log - (Logger) - can be used to write to the log file</li>
+<li>Label - the String Label</li>
+<li>Filename - the script file name (if any)</li>
+<li>Parameters - the parameters (as a String)</li>
+<li>args[] - the parameters as a String array (split on whitespace)</li>
+<li>ctx - (JMeterContext) - gives access to the context</li>
+<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object()); vars.getObject("OBJ2");</li>
+<li>props - JMeter Properties - e.g. props.get("START.HMS"); props.put("PROP1","1234");</li>
+<li>sampleResult, prev - (SampleResult) - gives access to the SampleResult</li>
+<li>sampleEvent - (SampleEvent) - gives access to the SampleEvent</li>
+<li>sampler - (Sampler)- gives access to the last sampler</li>
+<li>OUT - System.out - e.g. OUT.println("message")</li>
+</ul>
+<p>For details of all the methods available on each of the above variables, please check the Javadoc</p>
+</component>
<a href="#">^</a>
@@ -2932,13 +2970,17 @@
<p>The following variables are set up for use by the script:</p>
<ul>
<li>log - (Logger) - can be used to write to the log file</li>
+<li>Label - the String Label</li>
+<li>Filename - the script file name (if any)</li>
+<li>Parameters - the parameters (as a String)</li>
+<li>args[] - the parameters as a String array (split on whitespace)</li>
<li>ctx - (JMeterContext) - gives access to the context</li>
-<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object());</li>
+<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object()); vars.getObject("OBJ2");</li>
<li>props - JMeter Properties - e.g. props.get("START.HMS"); props.put("PROP1","1234");</li>
<li>prev - (SampleResult) - gives access to the previous SampleResult (if any)</li>
<li>sampler - (Sampler)- gives access to the current sampler</li>
<li>OUT - System.out - e.g. OUT.println("message")</li>
-<li>SampleResult - the current sample result</li>
+<li>SampleResult - the current sample result (same as prev)</li>
<li>AssertionResult - the assertion result</li>
</ul>
<p>
@@ -3378,8 +3420,12 @@
<p>The following variables are set up for use by the script:</p>
<ul>
<li>log - (Logger) - can be used to write to the log file</li>
+<li>Label - the String Label</li>
+<li>Filename - the script file name (if any)</li>
+<li>Parameters - the parameters (as a String)</li>
+<li>args[] - the parameters as a String array (split on whitespace)</li>
<li>ctx - (JMeterContext) - gives access to the context</li>
-<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object());</li>
+<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object()); vars.getObject("OBJ2");</li>
<li>props - JMeter Properties - e.g. props.get("START.HMS"); props.put("PROP1","1234");</li>
<li>prev - (SampleResult) - gives access to the previous SampleResult (if any)</li>
<li>sampler - (Sampler)- gives access to the current sampler</li>
@@ -3662,8 +3708,12 @@
<p>The following variables are set up for use by the script:</p>
<ul>
<li>log - (Logger) - can be used to write to the log file</li>
+<li>Label - the String Label</li>
+<li>Filename - the script file name (if any)</li>
+<li>Parameters - the parameters (as a String)</li>
+<li>args[] - the parameters as a String array (split on whitespace)</li>
<li>ctx - (JMeterContext) - gives access to the context</li>
-<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object());</li>
+<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object()); vars.getObject("OBJ2");</li>
<li>props - JMeter Properties - e.g. props.get("START.HMS"); props.put("PROP1","1234");</li>
<li>prev - (SampleResult) - gives access to the previous SampleResult (if any)</li>
<li>sampler - (Sampler)- gives access to the current sampler</li>
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org