Esempio n. 1
0
    def run(self, url, retries=1, query_params=None):
        logger.info('Starting getting data ({0} runs) with Phantomas for url: {1}'.format(retries, url))

        phantomas_runner = phantomas.Phantomas(
            url=url,
            runs=1,
            exec_path=self.__phantomas_path
        )

        def run_test():
            return phantomas_runner.run()

        all_runs = collect_results(run_test,retries)

        return {
            'generator': 'phantomas',
            'context': {
                'url': url,
                'origin': 'phantomas'
            },
            'data': [
                {
                    'generator': single_run.get_generator(),
                    'metrics': single_run.get_metrics(),
                    'offenders': {
                        metric: single_run.get_offenders(metric)
                        for metric in single_run.get_metrics()
                    }
                }
                for single_run in all_runs
            ]
        }
Esempio n. 2
0
    def run(self, url, retries=1, query_params=None):
        def run_test():
            logger.info('HTTP GET request: {} with params={}'.format(url, query_params))
            start_time = self.get_current_time()
            response = requests.get(url, params=query_params)
            elapsed_time = self.get_current_time() - start_time
            if not response.ok:
                logger.debug('HTTP status {}: {}'.format(response.status_code, response.content))
            response.raise_for_status()
            return {
                'content': response.text,
                'headers': dict(response.headers),
                'time': elapsed_time
            }

        results = collect_results(run_test,retries)

        return {
            'generator': 'python.requests',
            'context': {
                'url': url,
                'origin': 'python.requests'
            },
            'data': results
        }
Esempio n. 3
0
    def run(self, result_uri, url, retries=1, query_params=None, **params):
        self.position = params.get('task_position', self.MIDDLE)
        self.on_start(params['task_uri'])

        def run_test():
            logger.info('HTTP GET request: {} with params={}'.format(url, query_params))
            response = requests.get(url, params=query_params)
            if not response.ok:
                logger.debug('HTTP status {}: {}'.format(response.status_code, response.content))
            response.raise_for_status()
            return {
                'content': self._parse_content(response.text),
                'content_length': len(response.text),
                'headers': dict(response.headers),
                'time': self._elapsed_time(response),
            }

        results = collect_results(run_test, retries)

        logger.info('Sending results from HttpGet for url: {0}'.format(url))

        # posting raw results
        ApiClient.post(params['raw_result_uri'], {
            'result': result_uri,
            'generator': params.get('generator', 'python.requests'),
            'context': params.get('context', {'url': url, 'origin': 'python.requests', }),
            'data': results,
        })

        return result_uri
Esempio n. 4
0
    def run(self, result_uri, url, retries=1, tests=None, **params):
        logger.info('Starting getting data ({0} runs) with selenium for url: {1}'.format(retries, url))

        self.position = params.get('task_position', self.MIDDLE)
        self.on_start(params['task_uri'])

        results = {}
        if tests is None:
            tests = self.get_test_list(url)

        display = None
        try:
            if settings.SELENIUM_USE_VIRTUAL_DISPLAY:
                display = Display()
                display.start()

            def run_test():
                return self.run_test(test)

            for test in tests:
                test_results = zip(range(retries), collect_results(run_test, retries))
                results[test['test_name']] = [
                    {
                        'run': i + 1,
                        'result': test_result
                    }
                    for i, test_result in test_results
                ]

        finally:
            if display is not None:
                display.stop()

        logger.info('Sending results from Selenium for url: {0}'.format(url))

        # posting raw results
        ApiClient.post(params['raw_result_uri'], {
            'result': result_uri,
            'generator': 'selenium',
            'context': {'url': url, 'origin': 'selenium', },
            'data': results,
        })

        return result_uri
Esempio n. 5
0
    def run(self, result_uri, url, retries=1, query_params=None, **params):
        logger.info(
            'Starting getting data ({0} runs) with Phantomas for url: {1}'.
            format(retries, url))

        self.position = params.get('task_position', self.MIDDLE)
        self.on_start(params['task_uri'])

        phantomas_runner = phantomas.Phantomas(url=url,
                                               runs=1,
                                               exec_path=self.__phantomas_path)

        def run_test():
            return phantomas_runner.run()

        all_runs = collect_results(run_test, retries)

        logger.info('Sending results from Phantomas for url: {0}'.format(url))

        # posting raw results
        ApiClient.post(
            params['raw_result_uri'], {
                'result':
                result_uri,
                'generator':
                'phantomas',
                'context': {
                    'url': url,
                    'origin': 'phantomas',
                },
                'data': [{
                    'generator': single_run.get_generator(),
                    'metrics': single_run.get_metrics(),
                    'offenders': {
                        metric: single_run.get_offenders(metric)
                        for metric in single_run.get_metrics()
                    }
                } for single_run in all_runs],
            })

        return result_uri
Esempio n. 6
0
    def run(self, result_uri, url, retries=1, query_params=None, **params):
        self.position = params.get('task_position', self.MIDDLE)
        self.on_start(params['task_uri'])

        def run_test():
            logger.info('HTTP GET request: {} with params={}'.format(
                url, query_params))
            response = requests.get(url, params=query_params)
            if not response.ok:
                logger.debug('HTTP status {}: {}'.format(
                    response.status_code, response.content))
            response.raise_for_status()
            return {
                'content': self._parse_content(response.text),
                'content_length': len(response.text),
                'headers': dict(response.headers),
                'time': self._elapsed_time(response),
            }

        results = collect_results(run_test, retries)

        logger.info('Sending results from HttpGet for url: {0}'.format(url))

        # posting raw results
        ApiClient.post(
            params['raw_result_uri'], {
                'result':
                result_uri,
                'generator':
                params.get('generator', 'python.requests'),
                'context':
                params.get('context', {
                    'url': url,
                    'origin': 'python.requests',
                }),
                'data':
                results,
            })

        return result_uri
Esempio n. 7
0
    def run(self, result_uri, url, retries=1, query_params=None, **params):
        logger.info('Starting getting data ({0} runs) with Phantomas for url: {1}'.format(retries, url))

        self.position = params.get('task_position', self.MIDDLE)
        self.on_start(params['task_uri'])

        phantomas_runner = phantomas.Phantomas(
            url=url,
            runs=1,
            exec_path=self.__phantomas_path
        )

        def run_test():
            return phantomas_runner.run()

        all_runs = collect_results(run_test, retries)

        logger.info('Sending results from Phantomas for url: {0}'.format(url))

        # posting raw results
        ApiClient.post(params['raw_result_uri'], {
            'result': result_uri,
            'generator': 'phantomas',
            'context': {'url': url, 'origin': 'phantomas', },
            'data': [
                {
                    'generator': single_run.get_generator(),
                    'metrics': single_run.get_metrics(),
                    'offenders': {
                        metric: single_run.get_offenders(metric)
                        for metric in single_run.get_metrics()
                    }
                }
                for single_run in all_runs
            ],
        })

        return result_uri
Esempio n. 8
0
    def run(self, url, retries=1, tests=None):
        logger.info('Starting getting data ({0} runs) with selenium for url: {1}'.format(retries, url))

        results = {}
        if tests is None:
            tests = self.get_test_list(url)

        display = None
        try:
            if settings.SELENIUM_USE_VIRTUAL_DISPLAY:
                display = Display()
                display.start()

            def run_test():
                return self.run_test(test)

            for test in tests:
                test_results = zip(range(retries),collect_results(run_test,retries))
                results[test['test_name']] = [
                    {
                        'run': i + 1,
                        'result': test_result
                    }
                    for i, test_result in test_results
                ]

        finally:
            if display is not None:
                display.stop()


        return {
            'generator': 'selenium',
            'context': {
                'origin': 'selenium'
            },
            'data': results
        }