Exemple #1
0
def test_check(aggregator, instance):
    instance = {'url': 'https://www.google.com', 'name': 'google'}
    lighthouse_check = LighthouseCheck('lighthouse', {}, {})
    LighthouseCheck._get_lighthouse_report = MagicMock(
        side_effect=mock_get_lighthouse_report)

    lighthouse_check.check(instance)

    tags = []
    tags.append("url:{0}".format(instance["url"]))
    tags.append("name:{0}".format(instance["name"]))

    aggregator.assert_metric(name="lighthouse.accessibility",
                             value=86,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.best_practices",
                             value=79,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.performance",
                             value=74,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.pwa", value=58, tags=tags)
    aggregator.assert_metric(name="lighthouse.seo", value=90, tags=tags)

    aggregator.assert_all_metrics_covered()
def test_malformed_url_instance_check(aggregator, instance):
    # example malformed url
    malformed_instance = {'url': 'htp://www.datadoghq.comz', 'name': 'malformed_url'}
    lighthouse_check = LighthouseCheck('lighthouse', {}, {})
    LighthouseCheck._get_lighthouse_report = MagicMock(side_effect=mock_get_lighthouse_report)

    with pytest.raises(CheckException):
        lighthouse_check.check(malformed_instance)
def test_missing_name_instance_check(aggregator, instance):
    # incomplete instance in yaml missing name
    incomplete_instance = {'url': 'https://www.datadoghq.com'}
    lighthouse_check = LighthouseCheck('lighthouse', {}, {})
    LighthouseCheck._get_lighthouse_report = MagicMock(side_effect=mock_get_lighthouse_report)

    with pytest.raises(CheckException):
        lighthouse_check.check(incomplete_instance)
def test_invalid_response_check(aggregator, instance):
    # an example 404 response, will skip check but not throw error
    instance = {'url': 'https://httpstat.us/404', 'name': '404 response'}

    lighthouse_check = LighthouseCheck('lighthouse', {}, {})
    LighthouseCheck._get_lighthouse_report = MagicMock(side_effect=mock_get_lighthouse_report)

    lighthouse_check.check(instance)

    aggregator.assert_metric(name="lighthouse.accessibility", count=0, at_least=0)
    aggregator.assert_metric(name="lighthouse.best_practices", count=0, at_least=0)
    aggregator.assert_metric(name="lighthouse.performance", count=0, at_least=0)
    aggregator.assert_metric(name="lighthouse.pwa", count=0, at_least=0)
    aggregator.assert_metric(name="lighthouse.seo", count=0, at_least=0)
Exemple #5
0
def test_check(aggregator, instance):
    instance = {'url': 'https://www.google.com', 'name': 'google'}
    lighthouse_check = LighthouseCheck('lighthouse', {}, {})
    LighthouseCheck._get_lighthouse_report = MagicMock(
        side_effect=mock_get_lighthouse_report)

    lighthouse_check.check(instance)

    tags = []
    tags.append("url:{0}".format(instance["url"]))
    tags.append("name:{0}".format(instance["name"]))

    aggregator.assert_metric(name="lighthouse.accessibility",
                             value=92,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.best_practices",
                             value=100,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.performance",
                             value=55,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.pwa", value=30, tags=tags)
    aggregator.assert_metric(name="lighthouse.seo", value=89, tags=tags)
    aggregator.assert_metric(name="lighthouse.bootup_time",
                             value=2198,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.cumulative_layout_shift",
                             value=0.01,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.dom_size", value=2721, tags=tags)
    aggregator.assert_metric(name="lighthouse.first_contentful_paint",
                             value=2154,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.largest_contentful_paint",
                             value=3910,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.mainthread_work_breakdown",
                             value=3568,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.max_potential_fid",
                             value=208,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.modern_image_formats",
                             value=0,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.render_blocking_resources",
                             value=890,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.server_response_time",
                             value=276,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.speed_index",
                             value=4442,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.time_to_interactive",
                             value=10632.5,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.total_blocking_time",
                             value=926,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.unused_css_rules",
                             value=530,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.unused_javascript",
                             value=1200,
                             tags=tags)
    aggregator.assert_metric(name="lighthouse.uses_optimized_images",
                             value=0,
                             tags=tags)

    aggregator.assert_all_metrics_covered()
Exemple #6
0
def test_invalid_response_check(aggregator, instance):
    # an example 404 response, will skip check but not throw error
    instance = {'url': 'https://httpstat.us/404', 'name': '404 response'}

    lighthouse_check = LighthouseCheck('lighthouse', {}, {})
    LighthouseCheck._get_lighthouse_report = MagicMock(
        side_effect=mock_get_lighthouse_report)

    lighthouse_check.check(instance)

    aggregator.assert_metric(name="lighthouse.accessibility",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.best_practices",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.performance",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.pwa", count=0, at_least=0)
    aggregator.assert_metric(name="lighthouse.seo", count=0, at_least=0)
    aggregator.assert_metric(name="lighthouse.bootup_time",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.cumulative_layout_shift",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.dom_size", count=0, at_least=0)
    aggregator.assert_metric(name="lighthouse.first_contentful_paint",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.largest_contentful_paint",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.mainthread_work_breakdown",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.max_potential_fid",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.modern_image_formats",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.render_blocking_resources",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.server_response_time",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.speed_index",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.time_to_interactive",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.total_blocking_time",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.unused_css_rules",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.unused_javascript",
                             count=0,
                             at_least=0)
    aggregator.assert_metric(name="lighthouse.uses_optimized_images",
                             count=0,
                             at_least=0)