Bug 55498 - Change default properties of Transaction Controller
Summary: Change default properties of Transaction Controller
Status: RESOLVED FIXED
Alias: None
Product: JMeter
Classification: Unclassified
Component: Main (show other bugs)
Version: 2.9
Hardware: All All
: P2 enhancement (vote)
Target Milestone: ---
Assignee: JMeter issues mailing list
URL:
Keywords:
Depends on:
Blocks: 55653
  Show dependency tree
 
Reported: 2013-08-29 08:39 UTC by Antonio Gomes Rodrigues
Modified: 2013-12-13 09:21 UTC (History)
2 users (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Antonio Gomes Rodrigues 2013-08-29 08:39:20 UTC
In Transaction Controller, by default :
Generate Parent sample if unchecked
Include duration of timer ... is checked

I think it will be better (and more logic) to have :
Generate Parent sample if checked
Include duration of timer ... is unchecked

Each time I use Transaction Controller, I must do it in each Transaction Controller (not productive :( )
Some of my co-worker have not seen this 2 parameters and have bas response time during test. Now they think that JMeter is untrusted/crap tool.

I propose this patch to TransactionController class

# This patch file was generated by NetBeans IDE
# It uses platform neutral UTF-8 encoding and \n newlines.
--- Base (BASE)
+++ Locally Modified (Based On LOCAL)
@@ -109,7 +109,7 @@
     }
 
     public boolean isParent(){
-        return getPropertyAsBoolean(PARENT);
+        return getPropertyAsBoolean(PARENT, true);
     }
 
     /**
@@ -299,9 +299,9 @@
     /**
      * Whether to include timer and pre/post processor time in overall sample.
      *
-     * @return boolean (defaults to true for backwards compatibility)
+     * @return boolean
      */
     public boolean isIncludeTimers() {
-        return getPropertyAsBoolean(INCLUDE_TIMERS, true);
+        return getPropertyAsBoolean(INCLUDE_TIMERS, false);
     }
 }
Comment 1 Sebb 2013-08-29 11:19:11 UTC
If we do decide to change the default, it needs to be done in such a way that existing test plans are unaffected.

Do you have a suggestion for a patch to the documentation to make the choice of options clearer to users?
Comment 2 Antonio Gomes Rodrigues 2013-08-29 12:16:27 UTC
The patch don't work well, I will work in it more.

About the documentation, I think it will be great to have in wiki and in changes, a paragraph which explain "How to migrate script from XX release to XX release" and another paragraph called "What to look between XX release and XX release to avoid problem"
Comment 3 Antonio Gomes Rodrigues 2013-08-29 12:51:03 UTC
Correct patch to "Include duration of timer ..."

TransactionControllerGui file :

--- Base (BASE)
+++ Locally Modified (Based On LOCAL)
@@ -83,7 +83,7 @@
         add(makeTitlePanel());
         parent = new JCheckBox(JMeterUtils.getResString("transaction_controller_parent")); // $NON-NLS-1$
         add(parent);
-        includeTimers = new JCheckBox(JMeterUtils.getResString("transaction_controller_include_timers"), true); // $NON-NLS-1$
+        includeTimers = new JCheckBox(JMeterUtils.getResString("transaction_controller_include_timers")); // $NON-NLS-1$
         add(includeTimers);
     }
 }


TransactionController file :

--- Base (BASE)
+++ Locally Modified (Based On LOCAL)
@@ -293,15 +293,15 @@
      * @param includeTimers
      */
     public void setIncludeTimers(boolean includeTimers) {
-        setProperty(INCLUDE_TIMERS, includeTimers, true); // default true for compatibility
+        setProperty(INCLUDE_TIMERS, includeTimers,false);
     }
 
     /**
      * Whether to include timer and pre/post processor time in overall sample.
      *
-     * @return boolean (defaults to true for backwards compatibility)
+     * @return boolean
      */
     public boolean isIncludeTimers() {
-        return getPropertyAsBoolean(INCLUDE_TIMERS, true);
+        return getPropertyAsBoolean(INCLUDE_TIMERS);
     }
 }



About "Generate Parent sample if", I need more time to modify it (if you have a pointer to do it, it will be great)
Comment 4 Sebb 2013-08-29 13:02:05 UTC
(In reply to Antonio Gomes Rodrigues from comment #2)
> The patch don't work well, I will work in it more.
> 
> About the documentation, I think it will be great to have in wiki and in
> changes, a paragraph which explain "How to migrate script from XX release to
> XX release" 

JMeter releasese are upwards compatible; there should be no need to change scripts between versions. The unit tests include checks of the test script format.

But if there is a breaking change it is documented in the release notes.
It is very rare that a test script has to be modified.
Sometimes changes are made to the behaviour to improve performance, but again this will be documented.

> and another paragraph called "What to look between XX release
> and XX release to avoid problem"

Likewise, there should be no need for this.

What I was referring to was documentation on the Transaction Controller.
If it is not currently obvious how to configure it, then perhaps it needs more documentation.
Comment 5 Antonio Gomes Rodrigues 2013-08-29 13:27:11 UTC
(In reply to Sebb from comment #4)

> JMeter releasese are upwards compatible; there should be no need to change
> scripts between versions. The unit tests include checks of the test script
> format.
>
I understand but all old scripts will work as same as before, no ?
It's only for new scripts which will have an different behavior with how to calculate the response time
 

> 
> > and another paragraph called "What to look between XX release
> > and XX release to avoid problem"
> 
> Likewise, there should be no need for this.
> 
> What I was referring to was documentation on the Transaction Controller.
> If it is not currently obvious how to configure it, then perhaps it needs
> more documentation.

Ok I understand.

The problem is the actual behavior of Transaction Controller is not logical (for me and to all the people I have talk (co-worker, load test specialist, during my meetings...) and different of other load testing tool (my co-worker work with neoload and loadruner).
And unfortunately, people don't read all the documentation.

The second problem for me, it's when I record a script with the proxy recorder, I use Transaction Controller. And at the end of the recording I need to check/unched all the created transaction. I think it's not productive.

Antonio
Comment 6 Sebb 2013-08-29 15:38:10 UTC
(In reply to Antonio Gomes Rodrigues from comment #5)
> (In reply to Sebb from comment #4)
> 
> > JMeter releasese are upwards compatible; there should be no need to change
> > scripts between versions. The unit tests include checks of the test script
> > format.
> >
> I understand but all old scripts will work as same as before, no ?

That may depend on how the change is implemented.

> The second problem for me, it's when I record a script with the proxy
> recorder, I use Transaction Controller. And at the end of the recording I
> need to check/unched all the created transaction. I think it's not
> productive.

That's a separate issue, for which a different fix might be appropriate.
Please file a new enhancement request.

> Antonio
Comment 7 Antonio Gomes Rodrigues 2013-08-30 07:57:17 UTC
Ok I will study it after my holidays
Comment 8 Antonio Gomes Rodrigues 2013-10-01 15:58:35 UTC
Can you send me pointer to make this 2 modifications (which file to modify)

Thanks,
Antonio
Comment 9 Philippe Mouawad 2013-10-09 20:07:53 UTC
To change default for Proxy recording, you could add a configurable property in jmeter.properties to enable/disable the checkbox "Include duration of timer"
and use it in TransactionControllerGui.


This would not affect existing scripts but newly recorded ones would have the checkbox disabled.
We could add in changes.xml, in Incompatible changes a note about this change.

I agree on the fact default should be not to include time for processing and timers.
Comment 10 Sebb 2013-10-13 18:07:01 UTC
(In reply to Philippe Mouawad from comment #9)
> To change default for Proxy recording, you could add a configurable property
> in jmeter.properties to enable/disable the checkbox "Include duration of
> timer"
> and use it in TransactionControllerGui.

That should be a separate issuee please.

> 
> This would not affect existing scripts but newly recorded ones would have
> the checkbox disabled.
Comment 11 Antonio Gomes Rodrigues 2013-12-13 09:21:26 UTC
Fixed in Bugzilla Id: 55854