Re: Grinder Feature Enhancements for Worker Notifications and Console Reporting
Philip Aston <[email protected]>
| Newsgroups | gmane.comp.java.grinder.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi David,
On 28/05/10 02:34, David Smith wrote:
>
> Good evening,
>
> Our organization is interested in using The Grinder for some
> performance test measurements we will record. There are a few
> enhancements we would like to discuss and are willing to contribute
> the code back to the community if there is interest in any of them.
>
> 1. *Ability to wait for a test to finish on all agent workers prior to
> starting the next test.* This would allow us to batch run a large
> number of concurrent tests and help ensure that the same test is
> actually running on all agents at any given time. It seems like the
> easiest way for us to do this is to run the console in headless mode
> and enhance the Console API so that it allows listeners to be notified
> when agents have started and finished processing a test. We could
> utilize this enhancement, along with the startWorkerProcesses()
> method, to control when the next test starts on all agents. I saw
> that having a listener in the Console API was on the to-do list.
>
Yes, I've thought about doing something like this. I wouldn't base it on
Test()'s though, but instead create a separate synchronisation API which
the scripts would use. I don't think it would involve the console API,
but would use the console for coordination.
I'd imagine an API that looks something like this:
sync = grinder.synchronisation.register("my sync point") # create a
sync handle
##
sync.waitForAll() # Blocks until all handles for "my sync point"
have reached this point or have been closed
##
sync.close() # In case a script no longer wants to participate
in a sync point. Will also happen automatically if the worker
disconnects from the console.
> 2. *An option to publish detailed test results to the console.* In
> many cases the individual test results would contain too much data to
> maintain in the console, making the summarized results the better
> information to present. However in our testing it would be more
> useful to have all of the data collected from all the agents into a
> single location by the console.
>
There may be a data volume issue here. Not sure.
> 3. *Collect statistics in a headless console.* If our solution needs
> to involve running the console in headless mode and sending all the
> data collected to it, we will need to enhance the Console so that it
> is able to record the data somehow. I also saw that this is a To-do
> list item.
>
> 4. *Push files from the console to the agents when running in headless
> mode.* We foresee ourselves having many agents deployed, so manually
> transferring script changes to all of these files will be problematic
> for us.
>
Yes, definitely both "to do"s
> Let me know if any of these enhancements are already underway by
> someone else. We would like our efforts to benefit the project as a
> whole as well as our own needs, so feel free to discuss any additional
> requirements or ideas regarding these enhancements with us and the list.
>
I won't be working on any of these in the near future, and I'd welcome
such contributions. Please go ahead and prototype
Be aware that I'm a benevolent dictator and can be fussy about accepting
patches, and will want to review things carefully before merging them
back into the source tree, there's some hints at
http://grinder.sourceforge.net/development/contributing.html. Start with
some small things, and we'll proceed from there.
- Phil
------------------------------------------------------------------------------