Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: tools/chrome_proxy/integration_tests/chrome_proxy_metrics.py

Issue 942863004: Integration test for “lo-fi” mode in Chrome-Proxy request header (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/chrome_proxy/integration_tests/chrome_proxy_metrics.py
diff --git a/tools/chrome_proxy/integration_tests/chrome_proxy_metrics.py b/tools/chrome_proxy/integration_tests/chrome_proxy_metrics.py
index a8cac70432b97fa056370508f75556258d02280b..65133767a9137b0efce9752da3bbfdf813ff8e7c 100644
--- a/tools/chrome_proxy/integration_tests/chrome_proxy_metrics.py
+++ b/tools/chrome_proxy/integration_tests/chrome_proxy_metrics.py
@@ -71,6 +71,15 @@ class ChromeProxyResponse(network_metrics.HTTPResponse):
return kvp[1].strip()
return None
+ def HasChromeProxyLoFi(self):
+ if 'Chrome-Proxy' not in self.response.request_headers:
+ return False
+ chrome_proxy_request_header = self.response.request_headers['Chrome-Proxy']
+ values = [v.strip() for v in chrome_proxy_request_header.split(',')]
+ for value in values:
+ if len(value) == 5 and value == 'q=low':
+ return True
+ return False
class ChromeProxyMetric(network_metrics.NetworkMetric):
"""A Chrome proxy timeline metric."""
@@ -180,6 +189,39 @@ class ChromeProxyMetric(network_metrics.NetworkMetric):
results.AddValue(scalar.ScalarValue(
results.current_page, 'bypass', 'count', bypass_count))
+ def AddResultsForLoFi(self, tab, results):
+ lo_fi_count = 0
+
+ for resp in self.IterResponses(tab):
+ if resp.HasChromeProxyViaHeader():
+ lo_fi_count += 1
+ else:
+ r = resp.response
+ raise ChromeProxyMetricException, (
+ '%s: LoFi not in request header.' % (r.url))
+
+ cl = resp.content_length
+ resource = resp.response.url
+ results.AddValue(scalar.ScalarValue(
+ results.current_page, 'lo_fi', 'count', lo_fi_count))
+
+ for resp in self.IterResponses(tab):
+ r = resp.response
+ cl = resp.content_length
+ ocl = resp.original_content_length
+ saving = resp.data_saving_rate * 100
+ if cl > 100:
+ raise ChromeProxyMetricException, (
+ 'Image %s is %d bytes. Expecting less than 100 bytes.' %
+ (resource, cl))
+
+ results.AddValue(scalar.ScalarValue(
+ results.current_page, 'content_length', 'bytes', cl))
+ results.AddValue(scalar.ScalarValue(
+ results.current_page, 'original_content_length', 'bytes', ocl))
+ results.AddValue(scalar.ScalarValue(
+ results.current_page, 'data_saving', 'percent', saving))
+
def AddResultsForBypass(self, tab, results):
bypass_count = 0

Powered by Google App Engine
This is Rietveld 408576698