Exemple #1
0
    def test_calc_metrics(self):
        obj = ChromeProfiler()
        obj.engine = EngineEmul()
        obj.settings.merge({
            "processors": {
                "trace": {
                    "class": "bzt.modules.chrome.TraceProcessor",
                    "extractors": ["bzt.modules.chrome.MemoryMetricsExtractor"]
                }
            }
        })
        listener = RecordingListener()
        obj.add_listener(listener)

        shutil.copy(__dir__() + "/../chrome/trace.json", obj.engine.artifacts_dir)

        obj.prepare()
        obj.startup()
        obj.check()

        browser = listener.metrics_of_type("memory-browser")
        self.assertEqual(len(browser), 1)
        self.assertAlmostEqual(browser[0]["memory-browser"], 97.25, delta=0.1)

        per_tab = listener.metrics_of_type("memory-tab")
        self.assertEqual(len(per_tab), 1)
        self.assertAlmostEqual(per_tab[0]["memory-tab"], 97.25, delta=0.1)
Exemple #2
0
    def test_aggr_metrics(self):
        obj = ChromeProfiler()
        obj.engine = EngineEmul()
        obj.settings.merge({
            "processors": {
                "trace": {
                    "class": "bzt.modules.chrome.TraceProcessor",
                    "extractors": ["bzt.modules.chrome.MemoryMetricsExtractor"]
                }
            }
        })

        shutil.copy(__dir__() + "/../chrome/trace.json", obj.engine.artifacts_dir)

        obj.prepare()
        obj.startup()
        obj.check()

        metrics = obj.get_aggr_metrics()

        for metric, _ in iteritems(metrics):
            self.assertIsNotNone(obj.get_metric_label(metric))

        self.assertAlmostEqual(metrics["memory-average-tab"], 97.25, delta=0.01)
        self.assertAlmostEqual(metrics["memory-average-browser"], 97.25, delta=0.01)
    def test_metrics_reporting(self):
        engine = EngineEmul()
        profiler = ChromeProfiler()
        profiler.engine = engine
        profiler.settings.merge({
            "processors": {
                "trace": {
                    "class":
                    "bzt.modules.chrome.TraceProcessor",
                    "extractors": [
                        "bzt.modules.chrome.TabNameExtractor",
                        "bzt.modules.chrome.MemoryMetricsExtractor",
                    ]
                }
            }
        })
        shutil.copy(__dir__() + "/../chrome/trace.json", engine.artifacts_dir)

        log_recorder = RecordingHandler()
        reporter = MetricReporter()
        reporter.log.addHandler(log_recorder)
        reporter.engine = engine

        engine.services.append(profiler)
        engine.reporters.append(reporter)

        reporter.prepare()
        profiler.prepare()
        reporter.startup()
        profiler.startup()
        profiler.check()
        reporter.check()

        reporter.shutdown()
        reporter.post_process()

        info_buff = log_recorder.info_buff.getvalue()

        self.assertIn(
            "Chrome metrics for tab 'JMeter and Performance Testing for DevOps I BlazeMeter'",
            info_buff)
        self.assertIn("Memory metrics:", info_buff)

        profiler.log.removeHandler(log_recorder)
Exemple #4
0
    def test_metrics_reporting(self):
        engine = EngineEmul()
        profiler = ChromeProfiler()
        profiler.engine = engine
        profiler.settings.merge({
            "processors": {
                "trace": {
                    "class": "bzt.modules.chrome.TraceProcessor",
                    "extractors": [
                        "bzt.modules.chrome.TabNameExtractor",
                        "bzt.modules.chrome.MemoryMetricsExtractor",
                    ]
                }
            }
        })
        shutil.copy(__dir__() + "/../chrome/trace.json", engine.artifacts_dir)

        log_recorder = RecordingHandler()
        reporter = MetricReporter()
        reporter.log.addHandler(log_recorder)
        reporter.engine = engine

        engine.services.append(profiler)
        engine.reporters.append(reporter)

        reporter.prepare()
        profiler.prepare()
        reporter.startup()
        profiler.startup()
        profiler.check()
        reporter.check()

        reporter.shutdown()
        reporter.post_process()

        info_buff = log_recorder.info_buff.getvalue()

        self.assertIn("Chrome metrics for tab 'JMeter and Performance Testing for DevOps I BlazeMeter'", info_buff)
        self.assertIn("Memory metrics:", info_buff)

        profiler.log.removeHandler(log_recorder)
    def test_aggr_metrics(self):
        obj = ChromeProfiler()
        obj.engine = EngineEmul()
        obj.settings.merge({
            "processors": {
                "trace": {
                    "class": "bzt.modules.chrome.TraceProcessor",
                    "extractors":
                    ["bzt.modules.chrome.MemoryMetricsExtractor"]
                }
            }
        })

        shutil.copy(__dir__() + "/../chrome/trace.json",
                    obj.engine.artifacts_dir)

        obj.prepare()
        obj.startup()
        obj.check()

        metrics = obj.get_aggr_metrics()

        for metric, _ in iteritems(metrics):
            self.assertIsNotNone(obj.get_metric_label(metric))

        self.assertAlmostEqual(metrics["memory-average-tab"],
                               97.25,
                               delta=0.01)
        self.assertAlmostEqual(metrics["memory-average-browser"],
                               97.25,
                               delta=0.01)
    def test_reread(self):
        obj = ChromeProfiler()
        obj.engine = EngineEmul()
        obj.settings.merge({
            "processors": {
                "trace": {
                    "class": "bzt.modules.chrome.TraceProcessor",
                    "extractors":
                    ["bzt.modules.chrome.MemoryMetricsExtractor"]
                }
            }
        })
        listener = RecordingListener()
        obj.add_listener(listener)

        shutil.copy(__dir__() + "/../chrome/trace.json",
                    obj.engine.artifacts_dir)

        obj.prepare()
        obj.startup()
        for _ in range(3):
            obj.check()
            time.sleep(1)

        shutil.copy(__dir__() + "/../chrome/trace.json",
                    obj.engine.artifacts_dir)
        for _ in range(3):
            obj.check()
            time.sleep(1)

        obj.shutdown()
        obj.post_process()
    def test_calc_metrics(self):
        obj = ChromeProfiler()
        obj.engine = EngineEmul()
        obj.settings.merge({
            "processors": {
                "trace": {
                    "class": "bzt.modules.chrome.TraceProcessor",
                    "extractors":
                    ["bzt.modules.chrome.MemoryMetricsExtractor"]
                }
            }
        })
        listener = RecordingListener()
        obj.add_listener(listener)

        shutil.copy(__dir__() + "/../chrome/trace.json",
                    obj.engine.artifacts_dir)

        obj.prepare()
        obj.startup()
        obj.check()

        browser = listener.metrics_of_type("memory-browser")
        self.assertEqual(len(browser), 1)
        self.assertAlmostEqual(browser[0]["memory-browser"], 97.25, delta=0.1)

        per_tab = listener.metrics_of_type("memory-tab")
        self.assertEqual(len(per_tab), 1)
        self.assertAlmostEqual(per_tab[0]["memory-tab"], 97.25, delta=0.1)
Exemple #8
0
    def test_reread(self):
        obj = ChromeProfiler()
        obj.engine = EngineEmul()
        obj.settings.merge({
            "processors": {
                "trace": {
                    "class": "bzt.modules.chrome.TraceProcessor",
                    "extractors": ["bzt.modules.chrome.MemoryMetricsExtractor"]
                }
            }
        })
        listener = RecordingListener()
        obj.add_listener(listener)

        shutil.copy(__dir__() + "/../chrome/trace.json", obj.engine.artifacts_dir)

        obj.prepare()
        obj.startup()
        for _ in range(3):
            obj.check()
            time.sleep(1)

        shutil.copy(__dir__() + "/../chrome/trace.json", obj.engine.artifacts_dir)
        for _ in range(3):
            obj.check()
            time.sleep(1)

        obj.shutdown()
        obj.post_process()
Exemple #9
0
    def test_extraction(self):
        obj = ChromeProfiler()
        obj.engine = EngineEmul()
        obj.settings.merge({
            "processors": {
                "trace": {
                    "class": "bzt.modules.chrome.TraceProcessor",
                    "extractors": ["bzt.modules.chrome.MemoryMetricsExtractor"]
                }
            }
        })
        listener = RecordingListener()
        obj.add_listener(listener)

        shutil.copy(RESOURCES_DIR + "chrome/trace.json", obj.engine.artifacts_dir)

        obj.prepare()
        obj.startup()
        obj.check()
        obj.shutdown()
        obj.post_process()