diff --git a/manila_tempest_tests/config.py b/manila_tempest_tests/config.py
index e0e8ea3..774714b 100644
--- a/manila_tempest_tests/config.py
+++ b/manila_tempest_tests/config.py
@@ -30,7 +30,7 @@
                help="The minimum api microversion is configured to be the "
                     "value of the minimum microversion supported by Manila."),
     cfg.StrOpt("max_api_microversion",
-               default="2.51",
+               default="2.52",
                help="The maximum api microversion is configured to be the "
                     "value of the latest microversion supported by Manila."),
     cfg.StrOpt("region",
diff --git a/manila_tempest_tests/tests/api/admin/test_user_messages.py b/manila_tempest_tests/tests/api/admin/test_user_messages.py
index 8a11b1c..9d69f90 100644
--- a/manila_tempest_tests/tests/api/admin/test_user_messages.py
+++ b/manila_tempest_tests/tests/api/admin/test_user_messages.py
@@ -10,6 +10,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import datetime
+
 from oslo_utils import timeutils
 from oslo_utils import uuidutils
 from tempest import config
@@ -21,6 +23,7 @@
 CONF = config.CONF
 
 MICROVERSION = '2.37'
+QUERY_BY_TIMESTAMP_MICROVERSION = '2.52'
 MESSAGE_KEYS = (
     'created_at',
     'action_id',
@@ -111,3 +114,40 @@
         self.shares_v2_client.delete_message(self.message['id'])
         self.shares_v2_client.wait_for_resource_deletion(
             message_id=self.message['id'])
+
+    @decorators.attr(type=[base.TAG_POSITIVE, base.TAG_API])
+    @base.skip_if_microversion_not_supported(QUERY_BY_TIMESTAMP_MICROVERSION)
+    def test_list_messages_with_since_and_before_filters(self):
+        new_message = self.create_user_message()
+        created_at_1 = timeutils.parse_strtime(self.message['created_at'])
+        created_at_2 = timeutils.parse_strtime(new_message['created_at'])
+        time_1 = created_at_1 - datetime.timedelta(seconds=1)
+        time_2 = created_at_2 - datetime.timedelta(seconds=1)
+
+        params1 = {'created_since': str(created_at_1)}
+        # should return all user messages created by this test including
+        # self.message
+        messages = self.shares_v2_client.list_messages(params=params1)
+        ids = [x['id'] for x in messages]
+        self.assertGreaterEqual(len(ids), 2)
+        self.assertIn(self.message['id'], ids)
+        self.assertIn(new_message['id'], ids)
+
+        params2 = {'created_since': str(time_1),
+                   'created_before': str(time_2)}
+        # should not return new_message, but return a list that is equal to 1
+        # and include self.message
+        messages = self.shares_v2_client.list_messages(params=params2)
+        self.assertIsInstance(messages, list)
+        ids = [x['id'] for x in messages]
+        self.assertGreaterEqual(len(ids), 1)
+        self.assertIn(self.message['id'], ids)
+        self.assertNotIn(new_message['id'], ids)
+
+        params3 = {'created_before': str(time_2)}
+        # should not include self.message
+        messages = self.shares_v2_client.list_messages(params=params3)
+        ids = [x['id'] for x in messages]
+        self.assertGreaterEqual(len(ids), 1)
+        self.assertNotIn(new_message['id'], ids)
+        self.assertIn(self.message['id'], ids)
diff --git a/manila_tempest_tests/tests/api/admin/test_user_messages_negative.py b/manila_tempest_tests/tests/api/admin/test_user_messages_negative.py
index c9debdd..cf592e4 100644
--- a/manila_tempest_tests/tests/api/admin/test_user_messages_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_user_messages_negative.py
@@ -21,6 +21,7 @@
 CONF = config.CONF
 
 MICROVERSION = '2.37'
+QUERY_BY_TIMESTAMP_MICROVERSION = '2.52'
 
 
 class UserMessageNegativeTest(base.BaseSharesAdminTest):
@@ -61,3 +62,13 @@
         self.assertRaises(lib_exc.NotFound,
                           self.shares_v2_client.delete_message,
                           six.text_type(uuidutils.generate_uuid()))
+
+    @decorators.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+    @base.skip_if_microversion_not_supported(QUERY_BY_TIMESTAMP_MICROVERSION)
+    def test_list_messages_with_invalid_time_format(self):
+        params_key = ['created_since', 'created_before']
+        for key in params_key:
+            params = {key: 'invalid_time'}
+            self.assertRaises(lib_exc.BadRequest,
+                              self.shares_v2_client.list_messages,
+                              params=params)
