[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