Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Basic pyauto performance tests. | 6 """Basic pyauto performance tests. |
| 7 | 7 |
| 8 For tests that need to be run for multiple iterations (e.g., so that average | 8 For tests that need to be run for multiple iterations (e.g., so that average |
| 9 and standard deviation values can be reported), the default number of iterations | 9 and standard deviation values can be reported), the default number of iterations |
| 10 run for each of these tests is specified by |_DEFAULT_NUM_ITERATIONS|. | 10 run for each of these tests is specified by |_DEFAULT_NUM_ITERATIONS|. |
| (...skipping 893 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 904 # Counting extrapolation for utilization to play the video. | 904 # Counting extrapolation for utilization to play the video. |
| 905 extrapolation_value = (fraction_non_idle_time * | 905 extrapolation_value = (fraction_non_idle_time * |
| 906 (total_frames / total_shown_frames)) | 906 (total_frames / total_shown_frames)) |
| 907 logging.info('Youtube CPU extrapolation: %f' % extrapolation_value) | 907 logging.info('Youtube CPU extrapolation: %f' % extrapolation_value) |
| 908 self._OutputPerfGraphValue( | 908 self._OutputPerfGraphValue( |
| 909 'YoutubeCPUExtrapolation', | 909 'YoutubeCPUExtrapolation', |
| 910 extrapolation_value, 'extrapolation', | 910 extrapolation_value, 'extrapolation', |
| 911 graph_name='YoutubeCPUExtrapolation') | 911 graph_name='YoutubeCPUExtrapolation') |
| 912 | 912 |
| 913 | 913 |
| 914 class FlashVideoPerfTest(BasePerfTest): | |
| 915 """General flash video performance tests.""" | |
| 916 | |
| 917 def FlashVideo1080P(self): | |
| 918 """Measures total dropped frames and average FPS for a 1080p flash video. | |
| 919 | |
| 920 This is a temporary test to be run manually for now, needed to collect some | |
| 921 performance statistics across different ChromeOS devices. | |
| 922 """ | |
| 923 # Open up the test webpage; it's assumed the test will start automatically. | |
| 924 webpage_url = 'http://www.corp.google.com/~arscott/fl/FlashVideoTests.html' | |
|
Nirnimesh
2012/02/01 02:04:01
It's not a good idea to put internal URLs like thi
dennis_jeffrey
2012/02/01 02:13:32
Changed the URL slightly as discussed offline. It
| |
| 925 self.assertTrue(self.AppendTab(pyauto.GURL(webpage_url)), | |
| 926 msg='Failed to append tab for webpage.') | |
| 927 | |
| 928 # Wait until the test is complete. | |
| 929 js_is_done = """ | |
| 930 window.domAutomationController.send(JSON.stringify(tests_done)); | |
| 931 """ | |
| 932 self.assertTrue( | |
| 933 self.WaitUntil( | |
| 934 lambda: self.ExecuteJavascript(js_is_done, tab_index=1) == 'true', | |
| 935 timeout=300, expect_retval=True, retry_sleep=1), | |
| 936 msg='Timed out when waiting for test result.') | |
| 937 | |
| 938 # Retrieve and output the test results. | |
| 939 js_results = """ | |
| 940 window.domAutomationController.send(JSON.stringify(tests_results)); | |
| 941 """ | |
| 942 test_result = eval(self.ExecuteJavascript(js_results, tab_index=1)) | |
| 943 test_result[0] = test_result[0].replace('true', 'True') | |
| 944 test_result = eval(test_result[0]) # Webpage only does 1 test right now. | |
| 945 | |
| 946 description = 'FlashVideo1080P' | |
| 947 result = test_result['averageFPS'] | |
| 948 logging.info('Result for %s: %f FPS (average)', description, result) | |
| 949 self._OutputPerfGraphValue(description, result, 'FPS', | |
| 950 graph_name=description) | |
| 951 result = test_result['droppedFrames'] | |
| 952 logging.info('Result for %s: %f dropped frames', description, result) | |
| 953 self._OutputPerfGraphValue(description, result, 'DroppedFrames', | |
| 954 graph_name=description) | |
| 955 | |
| 956 | |
| 914 class WebGLTest(BasePerfTest): | 957 class WebGLTest(BasePerfTest): |
| 915 """Tests for WebGL performance.""" | 958 """Tests for WebGL performance.""" |
| 916 | 959 |
| 917 def _RunWebGLTest(self, url, description): | 960 def _RunWebGLTest(self, url, description): |
| 918 """Measures FPS using a specified WebGL demo. | 961 """Measures FPS using a specified WebGL demo. |
| 919 | 962 |
| 920 Args: | 963 Args: |
| 921 url: The string URL that, once loaded, will run the WebGL demo (default | 964 url: The string URL that, once loaded, will run the WebGL demo (default |
| 922 WebGL demo settings are used, since this test does not modify any | 965 WebGL demo settings are used, since this test does not modify any |
| 923 settings in the demo). | 966 settings in the demo). |
| (...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1611 """Identifies the port number to which the server is currently bound. | 1654 """Identifies the port number to which the server is currently bound. |
| 1612 | 1655 |
| 1613 Returns: | 1656 Returns: |
| 1614 The numeric port number to which the server is currently bound. | 1657 The numeric port number to which the server is currently bound. |
| 1615 """ | 1658 """ |
| 1616 return self._server.server_address[1] | 1659 return self._server.server_address[1] |
| 1617 | 1660 |
| 1618 | 1661 |
| 1619 if __name__ == '__main__': | 1662 if __name__ == '__main__': |
| 1620 pyauto_functional.Main() | 1663 pyauto_functional.Main() |
| OLD | NEW |