Buildbot/Talos/Misc
Adding a new test
Everybody wants moar tests, there is a lot that goes into adding a talos test:
Steps to add a test
- file a bug to add appropriate rows to graphserver.
- file an additional IT bug to deploy the sql changes on the production and staging graph servers
- if this is adding new pages, ensure these sql changes include page definitions. NOTE: this one detail is usually forgotten since it is so rare
- file a bug to add tests to talos.
- create a talos.zip file and file a releng bug to upload it to the build network
- create a patch for buildbot to add a definition of this new test and turn it on for the current branch
- create a m-c (not inbound) patch to modify testing/talos/talos.json, get it reviewed and landed
- create bugs for each time we uplift from mozilla-central->aurora->beta->release->esr to turn on your test
- if this is an update to an existing test that could change the numbers, this needs to be treated as a new test and run side by side for a week to get a new baseline for the numbers.
- file a bug to get tbpl updated with a new letter to track this test
While that is a laundry list of items to do, if you are developer of a component just talk to the a*team (jhammel or jmaher) and they will handle the majority of the steps above.
What we need to know about tests
When adding a new test, we really need to understand what we are doing. Here are some questions that you should know the answer to before adding a new test:
- What does this test measure?
- Does this test overlap with any existing test?
- What is the unit of measurement that we are recording?
- What would constitute a regression?
- What is the expected range in the results over time?
- Are there variables or conditions which would affect this test?
- browser configuration (prefs, environment variables)?
- OS, resources, time of day, etc... ?
- Indepenedent of Observation? Will this test produce the same number regardless of what was run before it?
- What considerations are there for how this test should be run and what tools are required?
Background Information
Other usage of Talos
- https://wiki.mozilla.org/Auto-tools/Projects/JetPerf
- compare-talos : https://bitbucket.org/mconnor/compare-talos deployed at http://perf.snarkfest.net/compare-talos/
Happy Talos testing!
Naming convention
't' is pre-pended to the names to represent 'test'. Thus, ts = 'test startup', tp = 'test pageload', tdhtml = 'test dhtml'.
History of tp Tests
tp
The original tp test created by Mozilla to test browser page load time. Cycled through 40 pages. The pages were copied from the live web during November, 2000. Pages were cycled by loading them within the main browser window from a script that lived in content.
tp2/tp_js
The same tp test but loading the individual pages into a frame instead of the main browser window. Still used the old 40 page, year 2000 web page test set.
tp3
An update to both the page set and the method by which pages are cycled. The page set is now 393 pages from December, 2006. The pageloader is re-built as an extension that is pre-loaded into the browser chrome/components directories.
tp4
Updated web page test set to 100 pages from February 2009.
tp4m
This is a smaller pageset (21 pages) designed for mobile Firefox. This is a blend of regular and mobile friendly pages.
We landed on this on April 18th, 2011 in bug 648307. This runs for Android and Maemo mobile builds only.
tp5
Updated web page test set to 100 pages from April 8th, 2011. Effort was made for the pages to no longer be splash screens/login pages/home pages but to be pages that better reflect the actual content of the site in question.