diff --git a/tempest/api/compute/admin/test_create_server.py b/tempest/api/compute/admin/test_create_server.py
index 5eed76a..df27f74 100644
--- a/tempest/api/compute/admin/test_create_server.py
+++ b/tempest/api/compute/admin/test_create_server.py
@@ -13,6 +13,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+from re import search
+
 import testtools
 
 from tempest.api.compute import base
@@ -307,3 +309,42 @@
                           'Cold migration is not available.')
     def test_cold_migration(self):
         self._test_cold_migration()
+
+
+class ServersTestVGPU(base.BaseV2ComputeAdminTest):
+    """Test creating server with vGPU flavor"""
+
+    @classmethod
+    def setup_credentials(cls):
+        cls.prepare_instance_network()
+        super(ServersTestVGPU, cls).setup_credentials()
+
+    @classmethod
+    def setup_clients(cls):
+        super(ServersTestVGPU, cls).setup_clients()
+        cls.client = cls.servers_client
+
+    @testtools.skipUnless(CONF.compute_feature_enabled.vgpu_flavor_ref,
+                          'vGPU flavor is not available.')
+    @testtools.skipUnless(CONF.compute.image_full_ref,
+                          'Current test requires full OS to be used.')
+    @decorators.idempotent_id('5c06d62b-d9c9-4cef-8b56-ef003af03519')
+    def test_create_server_vgpu(self):
+        # create the server and wait for it to become ready
+        validation_resources = self.get_class_validation_resources(
+            self.os_primary)
+        server = self.create_test_server(
+            image_id=CONF.compute.image_full_ref,
+            validatable=True,
+            validation_resources=validation_resources,
+            flavor=CONF.compute_feature_enabled.vgpu_flavor_ref)
+        # check that vgpu_pci_name is in console log server
+        linux_client = remote_client.RemoteClient(
+            self.get_server_ip(server, validation_resources),
+            CONF.compute.image_full_username,
+            pkey=validation_resources['keypair']['private_key'],
+            server=server,
+            servers_client=self.client)
+        output = linux_client.exec_command('lspci')
+        self.assertTrue(search(
+            CONF.compute_feature_enabled.vgpu_lspci_pattern, output))
diff --git a/tempest/config.py b/tempest/config.py
index 5bf6e52..75d3e1c 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -685,6 +685,13 @@
     cfg.BoolOpt('barbican_integration_enabled',
                 default=False,
                 help='Does the test environment support Barbican integration'),
+    cfg.StrOpt('vgpu_flavor_ref',
+               default=None,
+               help="Valid flavor to be used for vGPU tests."),
+    cfg.StrOpt('vgpu_lspci_pattern',
+               default="NVIDIA",
+               help="Pattern to search in lspci output to enaure VGPU is"
+                    " present on host.")
 ]
 
 
