ASF Bugzilla – Attachment 19435 Details for
Bug 41418
Excludes timer duration from Transaction Controller runtime in report
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
adds checkbox to Transaction Controller to exclude timer durations
transcation-timer-exclusion.patch (text/plain), 5.89 KB, created by
Holger Isenberg
on 2007-01-19 09:41:33 UTC
(
hide
)
Description:
adds checkbox to Transaction Controller to exclude timer durations
Filename:
MIME Type:
Creator:
Holger Isenberg
Created:
2007-01-19 09:41:33 UTC
Size:
5.89 KB
patch
obsolete
>Index: src/components/org/apache/jmeter/control/gui/TransactionControllerGui.java >=================================================================== >--- src/components/org/apache/jmeter/control/gui/TransactionControllerGui.java (revision 497882) >+++ src/components/org/apache/jmeter/control/gui/TransactionControllerGui.java (working copy) >@@ -20,16 +20,28 @@ > > import java.awt.BorderLayout; > >+import org.apache.jmeter.control.ForeachController; > import org.apache.jmeter.control.TransactionController; > import org.apache.jmeter.control.gui.AbstractControllerGui; >+import org.apache.jmeter.gui.util.VerticalPanel; > import org.apache.jmeter.testelement.TestElement; >+import org.apache.jmeter.util.JMeterUtils; > >+import javax.swing.JCheckBox; >+import javax.swing.JLabel; >+import javax.swing.JPanel; >+import javax.swing.JTextField; >+ > /** > * A Transaction controller component. > * > * @version $Revision$ on $Date$ > */ > public class TransactionControllerGui extends AbstractControllerGui { >+ >+ // add duration of timers to total con >+ private JCheckBox includeTimers; >+ > /** > * Create a new TransactionControllerGui instance. > */ >@@ -37,6 +49,20 @@ > init(); > } > >+ /** >+ * A newly created component can be initialized with the contents of a Test >+ * Element object by calling this method. The component is responsible for >+ * querying the Test Element object for the relevant information to display >+ * in its GUI. >+ * >+ * @param element >+ * the TestElement to configure >+ */ >+ public void configure(TestElement element) { >+ super.configure(element); >+ includeTimers.setSelected(((TransactionController) element).getIncludeTimers()); >+ } >+ > /* Implements JMeterGUIComponent.createTestElement() */ > public TestElement createTestElement() { > TransactionController lc = new TransactionController(); >@@ -45,8 +71,11 @@ > } > > /* Implements JMeterGUIComponent.modifyTestElement(TestElement) */ >- public void modifyTestElement(TestElement el) { >- configureTestElement(el); >+ public void modifyTestElement(TestElement lc) { >+ configureTestElement(lc); >+ if (lc instanceof TransactionController) { >+ ((TransactionController) lc).setIncludeTimers(includeTimers.isSelected()); >+ } > } > > public String getLabelResource() { >@@ -60,5 +89,24 @@ > setLayout(new BorderLayout()); > setBorder(makeBorder()); > add(makeTitlePanel(), BorderLayout.NORTH); >+ JPanel mainPanel = new JPanel(new BorderLayout()); >+ mainPanel.add(createPanel(), BorderLayout.NORTH); >+ add(mainPanel, BorderLayout.CENTER); > } >+ >+ /** >+ * Create a GUI panel containing the possible options >+ * >+ * @return a GUI panel containing the possible options >+ */ >+ private JPanel createPanel() { >+ VerticalPanel panel = new VerticalPanel(); >+ >+ // Checkbox >+ includeTimers = new JCheckBox(JMeterUtils.getResString("transaction_controller_include_timers"), true); >+ >+ panel.add(includeTimers); >+ >+ return panel; >+ } > } >Index: src/components/org/apache/jmeter/control/TransactionController.java >=================================================================== >--- src/components/org/apache/jmeter/control/TransactionController.java (revision 497882) >+++ src/components/org/apache/jmeter/control/TransactionController.java (working copy) >@@ -21,8 +21,10 @@ > import java.io.Serializable; > > import org.apache.jmeter.samplers.SampleEvent; >+import org.apache.jmeter.samplers.SampleListener; > import org.apache.jmeter.samplers.SampleResult; > import org.apache.jmeter.samplers.Sampler; >+import org.apache.jmeter.testelement.property.BooleanProperty; > import org.apache.jmeter.threads.JMeterContext; > import org.apache.jmeter.threads.JMeterThread; > import org.apache.jmeter.threads.JMeterVariables; >@@ -35,15 +37,19 @@ > * Transaction Controller to measure transaction times > * > */ >-public class TransactionController extends GenericController implements Controller, Serializable { >+public class TransactionController extends GenericController implements Controller, SampleListener, Serializable { > protected static final Logger log = LoggingManager.getLoggerForClass(); > >+ private final static String INCLUDE_TIMERS = "TransactionController.includeTimers"; >+ > transient private String threadName; > > transient private ListenerNotifier lnf; > > transient private SampleResult res; > >+ transient private long pauseTime, prevEndTime; >+ > /** > * Creates a Transaction Controller > */ >@@ -76,6 +82,8 @@ > calls = 0; > res = new SampleResult(); > res.sampleStart(); >+ prevEndTime = res.getStartTime(); >+ pauseTime = 0; > } > > calls++; >@@ -88,6 +96,7 @@ > if (res == null) { > log_debug("already called"); > } else { >+ res.incIdleTime(pauseTime); > res.sampleEnd(); > res.setSuccessful(true); > res.setSampleLabel(getName()); >@@ -111,4 +120,26 @@ > > return returnValue; > } >+ >+ public void sampleOccurred(SampleEvent e) { >+ if (!getIncludeTimers()) { >+ SampleResult r = e.getResult(); >+ pauseTime += r.getEndTime() - r.getTime() - prevEndTime; >+ prevEndTime = r.getEndTime(); >+ } >+ } >+ >+ public void sampleStarted(SampleEvent e) { >+ } >+ >+ public void sampleStopped(SampleEvent e) { >+ } >+ >+ public void setIncludeTimers(boolean b) { >+ setProperty(new BooleanProperty(INCLUDE_TIMERS, b)); >+ } >+ >+ public boolean getIncludeTimers() { >+ return getPropertyAsBoolean(INCLUDE_TIMERS, false); >+ } > } >Index: src/core/org/apache/jmeter/resources/messages.properties >=================================================================== >--- src/core/org/apache/jmeter/resources/messages.properties (revision 497856) >+++ src/core/org/apache/jmeter/resources/messages.properties (working copy) >@@ -712,6 +712,7 @@ > timelim=Time limit > time_format=Format string for SimpleDateFormat (optional) > transaction_controller_title=Transaction Controller >+transaction_controller_include_timers=Include timer duration in runtime summary. > unbind=Thread Unbind > uniform_timer_delay=Constant Delay Offset (in milliseconds)\: > uniform_timer_memo=Adds a random delay with a uniform distribution
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 41418
:
19435
|
19436
|
20430
|
20431
|
20819
|
24351
|
24584