diff --git a/requirements.txt b/requirements.txt
index 17f694d..6a74e48 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,3 +3,5 @@
 oslo.utils>=3.37.0 # Apache-2.0
 tempest>=17.1.0 # Apache-2.0
 gabbi>=2.7.0 # Apache-2.0
+requests>=2.14.2 # Apache-2.0
+testtools>=2.2.0 # MIT
diff --git a/telemetry_tempest_plugin/aodh/api/gnocchi/test_alarming_api.py b/telemetry_tempest_plugin/aodh/api/gnocchi/test_alarming_api.py
index 0fd826b..f39960f 100644
--- a/telemetry_tempest_plugin/aodh/api/gnocchi/test_alarming_api.py
+++ b/telemetry_tempest_plugin/aodh/api/gnocchi/test_alarming_api.py
@@ -29,8 +29,13 @@
         """
 
         super(TelemetryAlarmingAPIGnocchiTest, cls).skip_checks()
+        if not CONF.service_available.gnocchi:
+            msg = ("%s: Skipping Gnocchi specific tests without Gnocchi" %
+                   cls.__name__)
+            raise cls.skipException(msg)
+
         if 'gnocchi' not in CONF.telemetry_services.metric_backends:
-            msg = ("%s: Skipping Gnocchi specific tests withouth Gnocchi" %
+            msg = ("%s: Gnocchi is not one of the configured metric backends" %
                    cls.__name__)
             raise cls.skipException(msg)
 
diff --git a/telemetry_tempest_plugin/aodh/api/gnocchi/test_alarming_api_negative.py b/telemetry_tempest_plugin/aodh/api/gnocchi/test_alarming_api_negative.py
index 240dd3a..bf55dfe 100644
--- a/telemetry_tempest_plugin/aodh/api/gnocchi/test_alarming_api_negative.py
+++ b/telemetry_tempest_plugin/aodh/api/gnocchi/test_alarming_api_negative.py
@@ -39,8 +39,13 @@
         """
 
         super(TelemetryAlarmingNegativeGnocchiTest, cls).skip_checks()
+        if not CONF.service_available.gnocchi:
+            msg = ("%s: Skipping Gnocchi specific tests without Gnocchi" %
+                   cls.__name__)
+            raise cls.skipException(msg)
+
         if 'gnocchi' not in CONF.telemetry_services.metric_backends:
-            msg = ("%s: Skipping Gnocchi specific tests withouth Gnocchi" %
+            msg = ("%s: Gnocchi is not one of the configured metric backends" %
                    cls.__name__)
             raise cls.skipException(msg)
 
diff --git a/telemetry_tempest_plugin/scenario/test_telemetry_integration.py b/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
index 44a6dff..0f3e18b 100644
--- a/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
+++ b/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
@@ -11,9 +11,9 @@
 #    under the License.
 
 import os
-import requests
 import time
 
+import requests
 from tempest import config
 from tempest.lib.common.utils import data_utils
 from tempest.scenario import manager
diff --git a/telemetry_tempest_plugin/scenario/test_telemetry_integration_prometheus.py b/telemetry_tempest_plugin/scenario/test_telemetry_integration_prometheus.py
index 49ce5e8..6f9e3f6 100644
--- a/telemetry_tempest_plugin/scenario/test_telemetry_integration_prometheus.py
+++ b/telemetry_tempest_plugin/scenario/test_telemetry_integration_prometheus.py
@@ -11,9 +11,9 @@
 #    under the License.
 
 import os
-import requests
 import time
 
+import requests
 from tempest import config
 from tempest.lib.common.utils import data_utils
 from tempest.scenario import manager
