[Cosmo-dev] Cosmo UI Performance Testing
Adam Christian
adam at osafoundation.org
Fri Dec 8 11:35:00 PST 2006
QA has been working on a plan for doing performance testing of the
Cosmo UI, these were the main questions:
1. What do we think are representative UI operations that would be
good candidates for ongoing perf testing?
2. What facilities does Dojo have that would help us -- e.g.,
logging, profiling.
3. What code do we need to write either to use Dojo's testing
features or the pieces of those features that will be useful to us?
We came up with a the solution using Aspect Oriented Programming in
Javascript allowing me to execute some code I have added to start
timing, logging etc. This will allow us to kick off a function when
the page starts trying to load, and again when the init function is
done loading in the hopes of creating some benchmarks as to how long
things take. However, we do not want every user to be loading and
running code for testing so there will need to be some type of on/off
switch, and I am really interested in everyone's input as to the best
way for that to be accomplished. Since this piece will be a lot of
learning for me I have been working with Matt and reading into how
this all works.
For testing specific functionality I have built in timing functions
and a performance tab into the new Cosmo UI Testing Tool (Windmill)
that Mikeal and I are working on. This allows me to store the current
time in MS, run the test then store the end time in MS and compute
the running time. This may not be perfectly accurate but will give us
a basis for comparison. I will be running this on all of our current
UI tests for each checkpoint to compare and check for speed regressions.
We haven't completely solidified on a logging schema, when our tests
are done running in Windmill the results will be communicated back to
the server over json-rpc to be manipulated in Python for whatever
recording/storage needs that we want to build on later. In the
Javascript end, we are doing research into the Dojo logging
functionality since it is already there. If this isn't satisfactory
it would be reasonable for me or someone to build in another data
structure to be used for storing the logs in the UI.
Looking forward to feedback,
Adam
More information about the cosmo-dev
mailing list