def execute(self):
     _log.info('Start to execute the plan')
     _log.info('Start a new benchmark')
     results = []
     benchmarkBuilder = BenchmarkBuilderFactory.create([self.plan['benchmark_builder']])
     webRoot = benchmarkBuilder.prepare(self.plan['original_benchmark'], self.plan['benchmark_patch'] if 'benchmark_patch' in self.plan else None)
     for x in xrange(int(self.plan['count'])):
         _log.info('Start the iteration %d of current benchmark' % (x + 1))
         self.httpServerDriver.serve(webRoot)
         self.browserDriver.prepareEnv()
         self.browserDriver.launchUrl(urlparse.urljoin(self.httpServerDriver.baseUrl(), self.plan['entry_point']), self.buildDir)
         try:
             with timeout(self.plan['timeout']):
                 result = json.loads(self.httpServerDriver.fetchResult())
             assert(not self.httpServerDriver.getReturnCode())
             assert(result)
             results.append(result)
         except:
             _log.error('No result or server crashes. Something went wrong. Will skip current benchmark.')
             self.browserDriver.closeBrowsers()
             self.httpServerDriver.killServer()
             benchmarkBuilder.clean()
             return 1
         finally:
             self.browserDriver.closeBrowsers()
             _log.info('End of %d iteration of current benchmark' % (x + 1))
     results = self.wrap(results)
     self.dump(results, self.outputFile if self.outputFile else self.plan['output_file'])
     benchmarkBuilder.clean()
     return 0
    def execute(self):
        _log.info('Start to execute the plan')
        _log.info('Start a new benchmark')
        results = []
        self._benchmark_builder = BenchmarkBuilderFactory.create(self._plan['benchmark_builder'])

        web_root = self._benchmark_builder.prepare(self._plan_name, self._plan)
        for x in xrange(int(self._plan['count'])):
            _log.info('Start the iteration %d of current benchmark' % (x + 1))
            self._http_server_driver.serve(web_root)
            self._browser_driver.prepare_env(self._device_id)
            url = urlparse.urljoin(self._http_server_driver.base_url(), self._plan_name + '/' + self._plan['entry_point'])
            self._browser_driver.launch_url(url, self._build_dir)
            result = None
            try:
                with timeout(self._plan['timeout']):
                    result = self._http_server_driver.fetch_result()
                assert(not self._http_server_driver.get_return_code())
                assert(result)
                results.append(json.loads(result))
            except Exception as error:
                _log.error('No result or the server crashed. Something went wrong. Will skip current benchmark.\nError: %s, Server return code: %d, result: %s' % (error, self._http_server_driver.get_return_code(), result))
                self._cleanup()
                sys.exit(1)
            finally:
                self._browser_driver.close_browsers()
                _log.info('End of %d iteration of current benchmark' % (x + 1))
        results = self._wrap(results)
        self._dump(results, self._output_file if self._output_file else self._plan['output_file'])
        self._show_results(results)
        self._benchmark_builder.clean()
        sys.exit()
Exemple #3
0
    def execute(self):
        _log.info('Start to execute the plan')
        _log.info('Start a new benchmark')
        results = []
        self._benchmark_builder = BenchmarkBuilderFactory.create(
            self._plan['benchmark_builder'])

        web_root = self._benchmark_builder.prepare(self._plan_name, self._plan)
        for x in xrange(int(self._plan['count'])):
            _log.info('Start the iteration %d of current benchmark' % (x + 1))
            self._http_server_driver.serve(web_root)
            self._browser_driver.prepare_env(self._device_id)
            url = urlparse.urljoin(
                self._http_server_driver.base_url(),
                self._plan_name + '/' + self._plan['entry_point'])
            self._browser_driver.launch_url(url, self._build_dir)
            result = None
            try:
                with timeout(self._plan['timeout']):
                    result = self._http_server_driver.fetch_result()
                assert (not self._http_server_driver.get_return_code())
                assert (result)
                results.append(json.loads(result))
            except Exception as error:
                _log.error(
                    'No result or the server crashed. Something went wrong. Will skip current benchmark.\nError: %s, Server return code: %d, result: %s'
                    % (error, self._http_server_driver.get_return_code(),
                       result))
                self._cleanup()
                sys.exit(1)
            finally:
                self._browser_driver.close_browsers()
                _log.info('End of %d iteration of current benchmark' % (x + 1))
        results = self._wrap(results)
        self._dump(
            results, self._output_file
            if self._output_file else self._plan['output_file'])
        self._show_results(results)
        self._benchmark_builder.clean()
        sys.exit()
Exemple #4
0
 def execute(self):
     _log.info('Start to execute the plan')
     _log.info('Start a new benchmark')
     results = []
     benchmarkBuilder = BenchmarkBuilderFactory.create(
         [self.plan['benchmark_builder']])
     webRoot = benchmarkBuilder.prepare(
         self.plan['original_benchmark'], self.plan['benchmark_patch']
         if 'benchmark_patch' in self.plan else None)
     for x in xrange(int(self.plan['count'])):
         _log.info('Start the iteration %d of current benchmark' % (x + 1))
         self.httpServerDriver.serve(webRoot)
         self.browserDriver.prepareEnv()
         self.browserDriver.launchUrl(
             urlparse.urljoin(self.httpServerDriver.baseUrl(),
                              self.plan['entry_point']), self.buildDir)
         try:
             with timeout(self.plan['timeout']):
                 result = json.loads(self.httpServerDriver.fetchResult())
             assert (not self.httpServerDriver.getReturnCode())
             assert (result)
             results.append(result)
         except:
             _log.error(
                 'No result or server crashes. Something went wrong. Will skip current benchmark.'
             )
             self.browserDriver.closeBrowsers()
             self.httpServerDriver.killServer()
             benchmarkBuilder.clean()
             return 1
         finally:
             self.browserDriver.closeBrowsers()
             _log.info('End of %d iteration of current benchmark' % (x + 1))
     results = self.wrap(results)
     self.dump(
         results,
         self.outputFile if self.outputFile else self.plan['output_file'])
     benchmarkBuilder.clean()
     return 0