Telemetry: Manage Page Sets

Telemetry: Manage Page Sets

back to Telemetry Introduction




What is a Page Set?

A page set is a json file with a list of URLs.  Each URL can have multiple actions defined, for example click_element and scroll.  One of our most commonly used page sets is the top_25.json page set.  Page sets are independent of measurements.


You can think of page sets as a product level concept.  PMs know what use cases are important for a product.  This list of use cases should be maintained as a page set.


For example, here are some good and bad ways to use page sets:

Good

  • Alexa Top 25 websites

  • The 10 most interesting ways users use our webapp

Bad

  • One page set for measuring memory

  • Another pageset for measuring scrolling

Naming conventions

  • key: Popular sites that are high-impact to optimize for even though they might already be pretty good. These are keys sites to track and prevent regressions in chrome.
  • tough: Pathological sites that are challenges to optimize for and exploit features that are hard for the system. These are use cases with challenging aspects and probably more room for optimization than "key" sites.

Where do Page Sets Live?

tools/perf/page_sets/

Writing a Page Set

Page sets are json files that specify URLs and actions.


In this example I want to specify all the use cases for my application.  Right now, I only have one use case that I want to measure.

description: "my teams use cases that are worth benchmarking",

 "pages": [

 {

   "url": "my page's url",

   "smoothness": [

     {"action": "click_element", "selector": "#show-dialog"},

     {"action": "scroll", "selector": "#dialog > #dialog-contents"}

   ]

 }

Suppose now I also want to test the perf of my main page without that dialog showing. Ugh, I have to write another benchmark? No!  Just add another page:

 {

   "url": "my page's url",

   "smoothness": [

     {"action": "scroll", "selector": "body"}

   ]

 }

And maybe I want to monitor memory for that page by clicking a compose button 10 times. Again, that’s not another benchmark.  It’s just another entry in the same page.

 {

   "url": "my page's url",

   "smoothness": [

     {action: scroll, selector: "body"}

   ],

   "stress_memory": [

     {

"action": "repeat", 

"times": 10,

      "repeat": [

        {"action": "click_element", "selector": "#compose"},

        {"action": "click_element", "selector": "#discard"}

      ]

}

   ]

 }


Comments