https://issues.apache.org/bugzilla/show_bug.cgi?id=48286

           Summary: ConstantTimer's delay cannot be changed dynamically
                    during a test
           Product: JMeter
           Version: 2.3.4
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: major
          Priority: P2
         Component: Main
        AssignedTo: jmeter-dev@jakarta.apache.org
        ReportedBy: vass.sa...@freemail.hu


When I'm using Constant Timer in my testplan it turned out that the timer's
value (the speed of the stability test) could not be changed on the fly.

I was wondering why it happened, so I simply recreated the ConstantTimerGui and
ConstantTimer class itself (on a different name) and logged method calls on
them.

interesting issue 1)
It turned out, that MyTimerGui was instantiated and init'ed at the startup time
of JMeter (when there were no visible TimerGUI in JMeter at all).

Later on, I created a simple test plan, with an empty java sampler and with my
timer.
A new MyTimerGui instance was created and init'ed. A Timer object is created
here through the createTestElement() on the Gui.
interesting issue 2)
Several methods on MyConstantTimerGui was called 5 times, just because it was
created: modifyTestElment(), clearGui(), configure() and those methods, that
were called by these (getDelay, setDelay, configureTestElement...

interesting issue 3)
When I started my plan two brand new MyTimer instance were created. The first
one was just left to the garbage collection, it is never referenced again, as
far as I see. On the second one the iterationStart() and the delay() methods
were called, on each round, which is OK, except I thought those methods should
have been called on the firstly created Timer object (created by the Gui's
createTestElement() method).

interesting issue 4) (sounds like a bug to me)
when I change the delay of the timer, the Gui changes the delay's value on the
first created Timer object, not on which the framework is continuosuly calling
the delay() and the iterationStart() methods.

Summarizing it seems at the first sight, that the problem is, that two extra
Timers were created on starting a test instead of using the one, which was
created by the Gui component itself.
But. The 3rd (used) Timer object is able to retrieve the delay's value set
before starting the test, so my assumption would be that there is a problem
with the property container inside the Timers... I don't know.

Don't you think it would be very useful to be able to finetune a stability test
during the test execution itself? For example to measure the maximum throughput
of the system?
Currently there is only one way I can see as solution: during cloning the
Timers, the property map should not be cloned but the map's reference should be
copied. But it needs some hack, since the map is a private field of the
AbstractTestElement...

br,
Sandor

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

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

Reply via email to