diff --git a/tcp_tests/fixtures/runtest_fixtures.py b/tcp_tests/fixtures/runtest_fixtures.py
new file mode 100644
index 0000000..6f13cba
--- /dev/null
+++ b/tcp_tests/fixtures/runtest_fixtures.py
@@ -0,0 +1,39 @@
+#    Copyright 2018 Mirantis, Inc.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+import pytest
+from tcp_tests import settings
+from tcp_tests.managers.runtestmanager import RuntestManager
+
+
+@pytest.fixture(scope='function')
+def tempest_actions(underlay, salt_actions):
+    """
+    Run tempest tests
+    """
+    tempest_threads = settings.TEMPEST_THREADS
+    tempest_exclude_test_args = settings.TEMPEST_EXCLUDE_TEST_ARGS
+    tempest_pattern = settings.TEMPEST_PATTERN
+    cluster_name = settings.LAB_CONFIG_NAME
+    domain_name = "{}.local".format(cluster_name)
+    target = settings.TEMPEST_TARGET
+    runtest = RuntestManager(
+        underlay, salt_actions,
+        cluster_name=cluster_name,
+        domain_name=domain_name,
+        tempest_threads=tempest_threads,
+        tempest_exclude_test_args=tempest_exclude_test_args,
+        tempest_pattern=tempest_pattern,
+        target=target)
+    return runtest
diff --git a/tcp_tests/managers/runtestmanager.py b/tcp_tests/managers/runtestmanager.py
index 229a3ff..8957091 100644
--- a/tcp_tests/managers/runtestmanager.py
+++ b/tcp_tests/managers/runtestmanager.py
@@ -293,3 +293,13 @@
 
         return {'inspect': inspect,
                 'logs': logs}
+
+    def prepare_and_run_tempest(self, username='root'):
+        """
+        Run tempest tests
+        """
+        tempest_timeout = settings.TEMPEST_TIMEOUT
+        self.prepare()
+        test_res = self.run_tempest(tempest_timeout)
+        self.fetch_arficats(username=username)
+        self.save_runtime_logs(**test_res)
diff --git a/tcp_tests/settings.py b/tcp_tests/settings.py
index 169d089..50f3337 100644
--- a/tcp_tests/settings.py
+++ b/tcp_tests/settings.py
@@ -76,3 +76,8 @@
 TEMPEST_IMAGE_VERSION = os.environ.get('TEMPEST_IMAGE_VERSION', 'pike')
 TEMPEST_PATTERN = os.environ.get('TEMPEST_PATTERN', 'tempest')
 TEMPEST_TIMEOUT = int(os.environ.get('TEMPEST_TIMEOUT', 60 * 60 * 5))
+TEMPEST_THREADS = int(os.environ.get('TEMPEST_THREADS', 2))
+TEMPEST_EXCLUDE_TEST_ARGS = os.environ.get(
+    'TEMPEST_EXCLUDE_TEST_ARGS',
+    '--blacklist-file mcp_pike_lvm_skip.list')
+TEMPEST_TARGET = os.environ.get('TEMPEST_TARGET', 'gtw01')
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr-ceph-rgw/ceph.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr-ceph-rgw/ceph.yaml
index 30b046a..e2573e8 100644
--- a/tcp_tests/templates/virtual-mcp-pike-dvr-ceph-rgw/ceph.yaml
+++ b/tcp_tests/templates/virtual-mcp-pike-dvr-ceph-rgw/ceph.yaml
@@ -168,4 +168,3 @@
   skip_fail: false
 
 {{ BACKUP.MACRO_BACKUP_CEPH() }}
-{{ SHARED.RUN_NEW_TEMPEST() }}
\ No newline at end of file
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr-ssl-barbican/openstack.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr-ssl-barbican/openstack.yaml
index 8a8e6c2..ce846bb 100644
--- a/tcp_tests/templates/virtual-mcp-pike-dvr-ssl-barbican/openstack.yaml
+++ b/tcp_tests/templates/virtual-mcp-pike-dvr-ssl-barbican/openstack.yaml
@@ -359,5 +359,3 @@
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 3, delay: 5}
   skip_fail: false
-
-{{ SHARED.RUN_NEW_TEMPEST() }}
\ No newline at end of file
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr-ssl/openstack.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr-ssl/openstack.yaml
index 2d13116..21b9d28 100644
--- a/tcp_tests/templates/virtual-mcp-pike-dvr-ssl/openstack.yaml
+++ b/tcp_tests/templates/virtual-mcp-pike-dvr-ssl/openstack.yaml
@@ -344,5 +344,3 @@
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 3, delay: 5}
   skip_fail: false
-
-{{ SHARED.RUN_NEW_TEMPEST() }}
\ No newline at end of file
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr/openstack.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr/openstack.yaml
index 8dba7d2..487d369 100644
--- a/tcp_tests/templates/virtual-mcp-pike-dvr/openstack.yaml
+++ b/tcp_tests/templates/virtual-mcp-pike-dvr/openstack.yaml
@@ -342,4 +342,3 @@
 {{ BACKUP.MACRO_BACKUP_BACKUPNINJA() }}
 {{ BACKUP.MACRO_BACKUP_XTRABACKUP() }}
 
-{{ SHARED.RUN_NEW_TEMPEST() }}
\ No newline at end of file
diff --git a/tcp_tests/templates/virtual-mcp-pike-ovs-ceph/ceph.yaml b/tcp_tests/templates/virtual-mcp-pike-ovs-ceph/ceph.yaml
index 2c5fddf..976e4bb 100644
--- a/tcp_tests/templates/virtual-mcp-pike-ovs-ceph/ceph.yaml
+++ b/tcp_tests/templates/virtual-mcp-pike-ovs-ceph/ceph.yaml
@@ -166,5 +166,3 @@
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 2, delay: 5}
   skip_fail: false
-
-{{ SHARED.RUN_NEW_TEMPEST() }}
\ No newline at end of file
diff --git a/tcp_tests/tests/system/conftest.py b/tcp_tests/tests/system/conftest.py
index 1214cd3..61dd8e2 100644
--- a/tcp_tests/tests/system/conftest.py
+++ b/tcp_tests/tests/system/conftest.py
@@ -27,6 +27,7 @@
 from tcp_tests.fixtures.k8s_fixtures import *  # noqa
 from tcp_tests.fixtures.drivetrain_fixtures import *  # noqa
 from tcp_tests.fixtures.day1_fixtures import *  # noqa
+from tcp_tests.fixtures.runtest_fixtures import * # noqa
 
 
 __all__ = sorted([  # sort for documentation
@@ -74,5 +75,7 @@
     'k8s_deployed',
     'day1_underlay',
     'day1_cfg_config',
-    'day1_salt_action'
+    'day1_salt_action',
+    # tempest
+    'tempest_actions'
 ])
diff --git a/tcp_tests/tests/system/test_install_mcp_ovs_pike.py b/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
index c5138f0..f022e0b 100644
--- a/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
+++ b/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
@@ -14,8 +14,6 @@
 
 import pytest
 
-from tcp_tests.managers.runtestmanager import RuntestManager
-
 from tcp_tests import logger
 from tcp_tests import settings
 
@@ -32,8 +30,7 @@
     def test_mcp_pike_ovs_install(self, underlay,
                                   openstack_deployed,
                                   openstack_actions,
-                                  salt_actions,
-                                  config):
+                                  tempest_actions):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
@@ -45,27 +42,8 @@
         openstack_actions._salt.local(
             tgt='*', fun='cmd.run',
             args='service ntp stop; ntpd -gq; service ntp start')
-
         if settings.RUN_TEMPEST:
-            tempest_threads = 2
-            tempest_exclude_test_args = ''
-            tempest_pattern = settings.TEMPEST_PATTERN
-            cluster_name = settings.LAB_CONFIG_NAME
-            tempest_timeout = settings.TEMPEST_TIMEOUT
-            domain_name = "{}.local".format(cluster_name)
-            target = 'gtw01'
-            runtest = RuntestManager(
-                underlay, salt_actions,
-                cluster_name=cluster_name,
-                domain_name=domain_name,
-                tempest_threads=tempest_threads,
-                tempest_exclude_test_args=tempest_exclude_test_args,
-                tempest_pattern=tempest_pattern,
-                target=target)
-            runtest.prepare()
-            test_res = runtest.run_tempest(tempest_timeout)
-            runtest.fetch_arficats(username='root')
-            runtest.save_runtime_logs(**test_res)
+            tempest_actions.prepare_and_run_tempest()
 
         LOG.info("*************** DONE **************")
 
@@ -110,21 +88,21 @@
     def test_mcp_pike_dvr_install(self,
                                   underlay,
                                   openstack_deployed,
-                                  openstack_actions):
+                                  openstack_actions,
+                                  tempest_actions):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
         2. Setup controller nodes
         3. Setup compute nodes
-
+        4. Run tempest
         """
         openstack_actions._salt.local(
             tgt='*', fun='cmd.run',
             args='service ntp stop; ntpd -gq; service ntp start')
 
         if settings.RUN_TEMPEST:
-            openstack_actions.run_tempest(pattern=settings.PATTERN)
-            openstack_actions.download_tempest_report()
+            tempest_actions.prepare_and_run_tempest()
         LOG.info("*************** DONE **************")
 
     @pytest.mark.grab_versions
diff --git a/tcp_tests/tests/system/test_ovs_pike_ceph.py b/tcp_tests/tests/system/test_ovs_pike_ceph.py
index 080be26..1f62a94 100644
--- a/tcp_tests/tests/system/test_ovs_pike_ceph.py
+++ b/tcp_tests/tests/system/test_ovs_pike_ceph.py
@@ -26,9 +26,11 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
-    def test_pike_ceph_all_ovs_install(self, underlay, openstack_deployed,
+    def test_pike_ceph_all_ovs_install(self, underlay,
+                                       openstack_deployed,
                                        ceph_deployed,
-                                       openstack_actions):
+                                       openstack_actions,
+                                       tempest_actions):
         """Test for deploying pike ovs with ceph and check it
         Scenario:
         1. Prepare salt on hosts
@@ -43,7 +45,5 @@
                 args='service ntp stop; ntpd -gq; service ntp start')
 
         if settings.RUN_TEMPEST:
-            openstack_actions.run_tempest(pattern=settings.PATTERN,
-                                          conf_name='ceph_mcp.conf')
-            openstack_actions.download_tempest_report()
+            tempest_actions.prepare_and_run_tempest()
         LOG.info("*************** DONE **************")
