diff --git a/tempest/serial_tests/api/admin/test_aggregates.py b/tempest/serial_tests/api/admin/test_aggregates.py
index ce54957..4555dff 100644
--- a/tempest/serial_tests/api/admin/test_aggregates.py
+++ b/tempest/serial_tests/api/admin/test_aggregates.py
@@ -239,11 +239,14 @@
                 hosts_in_zone.extend(agg['hosts'])
         hosts = [v for v in self.hosts_available if v not in hosts_in_zone]
         hosts_available = []
+        list_hypervisors = (
+            self.os_admin.hypervisor_client.list_hypervisors(
+                {"with_servers": True}))["hypervisors"]
         for host in hosts:
-            hypervisor_servers = (
-                self.os_admin.hypervisor_client.list_servers_on_hypervisor(
-                    host)["hypervisors"][0].get("servers", None))
-            if not hypervisor_servers:
+            hypervisor_vms = next((
+                hyper["running_vms"] for hyper in list_hypervisors if
+                hyper['service']['host'] == host), None)
+            if hypervisor_vms == 0:
                 hosts_available.append(host)
         if not hosts_available:
             raise self.skipException("All hosts are already in other "
diff --git a/tempest/serial_tests/scenario/test_aggregates_basic_ops.py b/tempest/serial_tests/scenario/test_aggregates_basic_ops.py
index cc45297..ba10322 100644
--- a/tempest/serial_tests/scenario/test_aggregates_basic_ops.py
+++ b/tempest/serial_tests/scenario/test_aggregates_basic_ops.py
@@ -61,12 +61,15 @@
             binary='nova-compute')['services']
         self.assertNotEmpty(svc_list)
         hosts_available = []
+        list_hypervisors = (
+            self.os_admin.hypervisor_client.list_hypervisors(
+                {"with_servers": True}))["hypervisors"]
         for host in svc_list:
             if (host['state'] == 'up' and host['status'] == 'enabled'):
-                hypervisor_servers = (
-                    self.os_admin.hypervisor_client.list_servers_on_hypervisor(
-                        host["host"])["hypervisors"][0].get("servers", None))
-                if not hypervisor_servers:
+                hypervisor_vms = next((
+                    hyper["running_vms"] for hyper in list_hypervisors if
+                    hyper['service']['host'] == host["host"]), None)
+                if hypervisor_vms == 0:
                     hosts_available.append(host["host"])
         aggregates = self.aggregates_client.list_aggregates()['aggregates']
         hosts_in_zone = []
