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()
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()
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