diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/__init__.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/__init__.py
new file mode 100644
index 0000000..f39dd14
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/__init__.py
@@ -0,0 +1,15 @@
+# ##########################################################################
+#
+# #pgAdmin 4 - PostgreSQL Tools
+#
+# #Copyright (C) 2013 - 2016, The pgAdmin Development Team
+# #This software is released under the PostgreSQL Licence
+#
+# ##########################################################################
+
+from pgadmin.utils.route import BaseTestGenerator
+
+
+class ResourceGroupsCreateTestCase(BaseTestGenerator):
+    def runTest(self):
+        return
diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_add.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_add.py
new file mode 100644
index 0000000..bd84f09
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_add.py
@@ -0,0 +1,57 @@
+# #################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2016, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+# ##################################################################
+import uuid
+import json
+
+from pgadmin.utils.route import BaseTestGenerator
+from regression import test_utils as utils
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.tests import utils as server_utils
+from . import utils as resource_groups_utils
+
+
+class ResourceGroupsAddTestCase(BaseTestGenerator):
+    """This class will test the add resource groups API"""
+    scenarios = [
+        ('Add resource groups', dict(url='/browser/resource_group/obj/'))
+    ]
+
+    def setUp(self):
+        self.server_id = parent_node_dict["server"][-1]["server_id"]
+        server_con = server_utils.connect_server(self, self.server_id)
+        if not server_con["info"] == "Server connected.":
+            raise Exception("Could not connect to server to add resource "
+                            "groups.")
+        if "server_type" in server_con["data"]:
+            if server_con["data"]["server_type"] == "pg":
+                message = "Resource group not supported by PG."
+                self.skipTest(message)
+
+    def runTest(self):
+        """This function will add resource groups under server node"""
+        self.resource_group = "test_resource_group_add%s" % \
+                              str(uuid.uuid4())[1:6]
+        data = {"name": self.resource_group,
+                "cpu_rate_limit": 0,
+                "dirty_rate_limit": 0}
+        response = self.tester.post(self.url + str(utils.SERVER_GROUP) +
+                                    "/" + str(self.server_id) + "/",
+                                    data=json.dumps(data),
+                                    content_type='html/json')
+        self.assertEquals(response.status_code, 200)
+
+    def tearDown(self):
+        """This function delete the resource group from the database."""
+        connection = utils.get_db_connection(self.server['db'],
+                                             self.server['username'],
+                                             self.server['db_password'],
+                                             self.server['host'],
+                                             self.server['port'])
+        resource_groups_utils.delete_resource_group(connection,
+                                                    self.resource_group)
diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete.py
new file mode 100644
index 0000000..b7f6459
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete.py
@@ -0,0 +1,59 @@
+# #################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2016, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+# ##################################################################
+import uuid
+
+from pgadmin.utils.route import BaseTestGenerator
+from regression import test_utils as utils
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.tests import utils as server_utils
+from . import utils as resource_groups_utils
+
+
+class ResourceGroupsDeleteTestCase(BaseTestGenerator):
+    """This class will delete the resource groups"""
+    scenarios = [
+        ('Delete resource groups', dict(url='/browser/resource_group/obj/'))
+    ]
+
+    def setUp(self):
+        self.server_id = parent_node_dict["server"][-1]["server_id"]
+        server_response = server_utils.connect_server(self, self.server_id)
+        if not server_response["info"] == "Server connected.":
+            raise Exception("Could not connect to server to add resource "
+                            "groups.")
+        if "server_type" in server_response["data"]:
+            if server_response["data"]["server_type"] == "pg":
+                message = "Resource group not supported by PG."
+                self.skipTest(message)
+        self.resource_group = "test_resource_group_delete%s" % \
+                         str(uuid.uuid4())[1:6]
+        self.resource_group_id = resource_groups_utils.create_resource_groups(
+            self.server, self.resource_group)
+
+    def runTest(self):
+        """This function will delete resource groups."""
+        resource_grp_response = resource_groups_utils.verify_resource_group(
+            self.server, self.resource_group)
+        if not resource_grp_response:
+            raise Exception("Could not find the resource group to fetch it.")
+        response = self.tester.delete(
+            "{0}{1}/{2}/{3}".format(self.url, utils.SERVER_GROUP,
+                                    self.server_id, self.resource_group_id),
+            follow_redirects=True)
+        self.assertEquals(response.status_code, 200)
+
+    def tearDown(self):
+        """This function delete the resource group from the database."""
+        connection = utils.get_db_connection(self.server['db'],
+                                             self.server['username'],
+                                             self.server['db_password'],
+                                             self.server['host'],
+                                             self.server['port'])
+        resource_groups_utils.delete_resource_group(connection,
+                                                    self.resource_group)
diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_put.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_put.py
new file mode 100644
index 0000000..9f503c5
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_put.py
@@ -0,0 +1,64 @@
+# #################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2016, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+# ##################################################################
+import uuid
+import json
+
+from pgadmin.utils.route import BaseTestGenerator
+from regression import test_utils as utils
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.tests import utils as server_utils
+from . import utils as resource_groups_utils
+
+
+class ResourceGroupsPutTestCase(BaseTestGenerator):
+    """This class will update the resource groups"""
+    scenarios = [
+        ('Put resource groups', dict(url='/browser/resource_group/obj/'))
+    ]
+
+    def setUp(self):
+        self.server_id = parent_node_dict["server"][-1]["server_id"]
+        server_response = server_utils.connect_server(self, self.server_id)
+        if not server_response["info"] == "Server connected.":
+            raise Exception("Could not connect to server to add resource "
+                            "groups.")
+        if "server_type" in server_response["data"]:
+            if server_response["data"]["server_type"] == "pg":
+                message = "Resource group not supported by PG."
+                self.skipTest(message)
+        self.resource_group_name = "test_resource_group_put%s" % \
+                                   str(uuid.uuid4())[1:6]
+        self.resource_group_id = resource_groups_utils.create_resource_groups(
+            self.server, self.resource_group_name)
+
+    def runTest(self):
+        """This function will get the resource groups."""
+        resource_grp_response = resource_groups_utils.verify_resource_group(
+            self.server, self.resource_group_name)
+        if not resource_grp_response:
+            raise Exception("Could not find the resource group to fetch it.")
+        self.resource_group_name = "test_resource_group_put%s" % \
+                                   str(uuid.uuid4())[1:6]
+        data = {"id": self.resource_group_id,
+                "name": self.resource_group_name}
+        response = self.tester.put('{0}{1}/{2}/{3}'.format(
+            self.url, utils.SERVER_GROUP, self.server_id,
+            self.resource_group_id), data=json.dumps(data),
+            follow_redirects=True)
+        self.assertEquals(response.status_code, 200)
+
+    def tearDown(self):
+        """This function delete the resource group from the database."""
+        connection = utils.get_db_connection(self.server['db'],
+                                             self.server['username'],
+                                             self.server['db_password'],
+                                             self.server['host'],
+                                             self.server['port'])
+        resource_groups_utils.delete_resource_group(connection,
+                                                    self.resource_group_name)
diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/tests_resource_groups_get.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/tests_resource_groups_get.py
new file mode 100644
index 0000000..e3e90a1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/tests_resource_groups_get.py
@@ -0,0 +1,59 @@
+# #################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2016, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+# ##################################################################
+import uuid
+
+from pgadmin.utils.route import BaseTestGenerator
+from regression import test_utils as utils
+from regression import parent_node_dict
+from pgadmin.browser.server_groups.servers.tests import utils as server_utils
+from . import utils as resource_groups_utils
+
+
+class ResourceGroupsGetTestCase(BaseTestGenerator):
+    """This class will get the resource groups"""
+    scenarios = [
+        ('Get resource groups', dict(url='/browser/resource_group/obj/'))
+    ]
+
+    def setUp(self):
+        self.server_id = parent_node_dict["server"][-1]["server_id"]
+        server_response = server_utils.connect_server(self, self.server_id)
+        if not server_response["info"] == "Server connected.":
+            raise Exception("Could not connect to server to add resource "
+                            "groups.")
+        if "server_type" in server_response["data"]:
+            if server_response["data"]["server_type"] == "pg":
+                message = "Resource group not supported by PG."
+                self.skipTest(message)
+        self.resource_group = "test_resource_group_get%s" % \
+                         str(uuid.uuid4())[1:6]
+        self.resource_group_id = resource_groups_utils.create_resource_groups(
+            self.server, self.resource_group)
+
+    def runTest(self):
+        """This function will get the resource groups."""
+        resource_grp_response = resource_groups_utils.verify_resource_group(
+            self.server, self.resource_group)
+        if not resource_grp_response:
+            raise Exception("Could not find the resource group to fetch it.")
+        response = self.tester.get(
+            "{0}{1}/{2}/{3}".format(self.url, utils.SERVER_GROUP,
+                                    self.server_id, self.resource_group_id),
+            follow_redirects=True)
+        self.assertEquals(response.status_code, 200)
+
+    def tearDown(self):
+        """This function delete the resource group from the database."""
+        connection = utils.get_db_connection(self.server['db'],
+                                             self.server['username'],
+                                             self.server['db_password'],
+                                             self.server['host'],
+                                             self.server['port'])
+        resource_groups_utils.delete_resource_group(connection,
+                                                    self.resource_group)
diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/utils.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/utils.py
new file mode 100644
index 0000000..31584b7
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/utils.py
@@ -0,0 +1,92 @@
+# #################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2016, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+# ##################################################################
+from __future__ import print_function
+import sys
+import traceback
+
+from regression import test_utils as utils
+
+
+def create_resource_groups(server, resource_group_name):
+    """
+    This function create the resource groups into databases.
+    :param server: server details
+    :type server: dict
+    :param resource_group_name: resource group name
+    :type resource_group_name: str
+    :return resource_group_id: resource group id
+    :rtype: int
+    """
+    try:
+        connection = utils.get_db_connection(server['db'],
+                                             server['username'],
+                                             server['db_password'],
+                                             server['host'],
+                                             server['port'])
+        old_isolation_level = connection.isolation_level
+        connection.set_isolation_level(0)
+        pg_cursor = connection.cursor()
+        pg_cursor.execute("CREATE RESOURCE GROUP %s" % resource_group_name)
+        connection.set_isolation_level(old_isolation_level)
+        connection.commit()
+        # Get oid of newly created resource group
+        pg_cursor.execute("SELECT oid FROM edb_resource_group WHERE "
+                          "rgrpname='%s'" % resource_group_name)
+        resource_group = pg_cursor.fetchone()
+        resource_group_id = resource_group[0]
+        connection.close()
+        return resource_group_id
+    except Exception:
+        traceback.print_exc(file=sys.stderr)
+
+
+def verify_resource_group(server, resource_group_name):
+    """
+    This function verifies the resource group exist in database or not.
+    :param server: server details
+    :type server: dict
+    :param db_name: database name
+    :type db_name: str
+    :param resource_group_name: resource group name
+    :type resource_group_name: str
+    :return:
+    """
+    try:
+        connection = utils.get_db_connection(server['db'],
+                                             server['username'],
+                                             server['db_password'],
+                                             server['host'],
+                                             server['port'])
+        pg_cursor = connection.cursor()
+        pg_cursor.execute("SELECT * FROM edb_resource_group WHERE "
+                          "rgrpname='%s'" % resource_group_name)
+        resource_group = pg_cursor.fetchone()
+        connection.close()
+        return resource_group
+    except Exception:
+        traceback.print_exc(file=sys.stderr)
+
+
+def delete_resource_group(connection, resource_group_name):
+    try:
+        pg_cursor = connection.cursor()
+        pg_cursor.execute("SELECT * FROM edb_resource_group WHERE"
+                          " rgrpname='%s'" % resource_group_name)
+        resource_group_name_count = len(pg_cursor.fetchall())
+        if resource_group_name_count:
+            old_isolation_level = connection.isolation_level
+            connection.set_isolation_level(0)
+            pg_cursor.execute("DELETE FROM edb_resource_group where "
+                              "rgrpname='%s'" %
+                              resource_group_name)
+            connection.set_isolation_level(old_isolation_level)
+            connection.commit()
+        connection.close()
+    except Exception:
+        traceback.print_exc(file=sys.stderr)
