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 **************")
