Changes

Jump to: navigation, search

TestEngineering/Performance/Talos/Tests

4,840 bytes removed, 19:07, 9 August 2019
Removed tp6
* Slowdown in the building of display list
* Slowdown in rasterization of content
 
== tp6 ==
* contact: :rwood, :jmaher
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/quantum_pageload tp6]
* type: [[#Page_Load_Tests|PageLoader]]
* reporting: intervals in ms (lower is better)
* data: we load each of the tp6 pages 25 times
* summarization:
** subtest: [[TestEngineering/Performance/Talos/Data#ignore_first|ignore first five]] data points, then take the [[TestEngineering/Performance/Talos/Data#median|median]] of the remaining 20; [http://searchfox.org/mozilla-central/rev/8a61c71153a79cda2e1ae7d477564347c607cc5f/testing/talos/talos/test.py#246 source: test.py]
** suite: identical to subtest; each tp6_* test is reported individually (they're NOT aggregated)
 
The talos tp6 (also known as 'quantum-pageload') test suite loads various pages and reports their load times. Each test page/URL is reported individually.
 
Instead of loading the page sets from a local file, a tool called [http://docs.mitmproxy.org/en/latest/introduction.html mitmproxy] is used to playback page archives via an https proxy. When the tp6 suite is run via ./mach talos-test, mozharness automatically downloads and installs the mitmproxy tool and pageset archives.
 
The mitmproxy tool is started, the proxy setup in Firefox, and the mitmproxy https security certificate is loaded into Firefox, all automatically. The pagesets are made available for playback via the proxy, at which point each of the tp6 test pages are ready for load and measurement.
 
Note: For local debugging purposes, you can find the [[#page_sets|page set here]]
 
The tp6 suite currently consists of these individual pageload tests:
 
{| cellspacing="1" cellpadding="1" border="1"
|-
| Talos test name
| Description
|-
| tp6_amazon
| Measures page load (first non-blank paint) of an amazon search result for the keyword "laptop"
|-
| tp6_facebook
| Measures page load (first non-blank paint) of a facebook timeline (post-login)
|-
| tp6_google
| Measures page load (hero element) of a google search result for the keywords "barack obama"
|-
| tp6_youtube
| Measures page load (first non-blank paint) of the youtube home page
|}
 
{| class="mw-collapsible mw-collapsed wikitable"
! Example data for tp6_youtube
|-
| <pre>
https://www.youtube.co/;409;441;354;337;326;375;353;650;354;712;667;336;791;497;342;355;611;334;
692;320;714;434;582;610;333
</pre>
|}
 
=== Recording a tp6 test page ===
Test pages used for tp6 are mitmproxy recordings that are played back during the tp6 test (and ultimately loaded in Firefox via the local proxy). Each test page is a separate mitmproxy recording (*.mp) file, however all recordings for the tp6 suite are archived in a single zip file on tooltool. When tp6 is run, talos automatically downloads the mitmproxy recording archive for use during the test.
 
The following process was used to record the tp6 mitmproxy page archives (on Windows 10):
 
1. Install mitmproxy following the mitmproxy [http://docs.mitmproxy.org/en/stable/install.html installation instructions]
 
2. Setup a local proxy in Firefox:
* Start Firefox
* Preferences => General
* Network Proxy => Settings
* On the "Connection Settings" screen, select "Manual proxy configuration"
* For "HTTP Proxy" type in "127.0.0.1" with port "8080"
* For "SSL Proxy" use the same "127.0.0.1" with port "8080"
* Click the "OK" button to save the proxy settings
 
3. Install the mitmproxy CA certificate:
* Open a terminal window
* Startup mitmproxy in host mode:
mitmproxy --host
* In Firefox, browse to "mitm.it" and follow the directions on how to accept the CA certificate
* Shutdown the mitmproxy tool (in terminal hit "Q", then "Y" to quit)
 
4. Record a new page:
* Start Firefox with the proxy still enabled
* Clear the browser history/cache
* In a terminal window start the mitmdump recording tool:
mitmdump -w /path/to/save/recording.mp
* Inside Firefox browse to the URL that you want to record (i.e. www.spacex.com)
* Wait for the page to be fully loaded and displayed
* In the mitmdump terminal window press "ctrl + c" to stop the recording
 
5. To test playing back your recorded page:
* Start Firefox with the proxy still enabled
* With mitmproxy NOT running, browse to your recorded URL (i.e. www.spacex.com); you'll just get an error saying that the proxy server is refusing connections
* In a terminal window, start mitmproxy playback:
mitmdump -k /path/to/save/recording.mp
* In Firefox browse to the URL that you recorded already (i.e. www.spacex.com). This time the page will load successfully; it is actually loading the page from the local mitmdump archive file (*.mp) and not the external site
* In the terminal window press "ctrl + c" to stop the playback
 
6. When you're finished remember to turn off your Firefox proxy:
* Preferences => General
* Network Proxy => Settings
* Select "No proxy" and click the "OK" button
== tpaint ==
Confirm
2,177
edits

Navigation menu