示例#1
0
    def testNetworkMetricResults(self):
        events = [
            # A plain text HTML.
            self.MakeNetworkTimelineEvent(url='http://test.html1',
                                          response_headers={
                                              'Content-Type':
                                              'text/html',
                                              'Content-Length':
                                              str(len(HTML_BODY)),
                                          },
                                          body=HTML_BODY),
            # A compressed HTML.
            self.MakeNetworkTimelineEvent(url='http://test.html2',
                                          response_headers={
                                              'Content-Type':
                                              'text/html',
                                              'Content-Encoding':
                                              'gzip',
                                              'X-Original-Content-Length':
                                              str(len(HTML_BODY)),
                                          },
                                          body=HTML_BODY),
            # A base64 encoded image.
            self.MakeNetworkTimelineEvent(url='http://test.image',
                                          response_headers={
                                              'Content-Type':
                                              'image/jpeg',
                                              'Content-Encoding':
                                              'gzip',
                                              'X-Original-Content-Length':
                                              str(IMAGE_OCL),
                                          },
                                          body=base64.b64encode(IMAGE_BODY),
                                          base64_encoded_body=True),
        ]
        metric = network.NetworkMetric()
        metric._events = events
        metric.compute_data_saving = True

        self.assertTrue(len(events), len(list(metric.IterResponses(None))))
        results = test_page_measurement_results.TestPageMeasurementResults(
            self)
        metric.AddResults(None, results)

        cl = len(HTML_BODY) + GZIPPED_HTML_LEN + len(IMAGE_BODY)
        results.AssertHasPageSpecificScalarValue('content_length', 'bytes', cl)

        ocl = len(HTML_BODY) + len(HTML_BODY) + IMAGE_OCL
        results.AssertHasPageSpecificScalarValue('original_content_length',
                                                 'bytes', ocl)

        saving_percent = float(ocl - cl) * 100 / ocl
        results.AssertHasPageSpecificScalarValue('data_saving', 'percent',
                                                 saving_percent)
示例#2
0
 def WillStartBrowser(self, platform):
     self._power_metric = power.PowerMetric(platform)
     self._network_metric = network.NetworkMetric(platform)