diff --git a/manila_tempest_tests/services/share/v2/json/shares_client.py b/manila_tempest_tests/services/share/v2/json/shares_client.py
index 32c863b..7a146b6 100644
--- a/manila_tempest_tests/services/share/v2/json/shares_client.py
+++ b/manila_tempest_tests/services/share/v2/json/shares_client.py
@@ -14,10 +14,11 @@
 #    under the License.
 
 import json
+import re
 import six
 import time
 
-from six.moves.urllib import parse as urlparse
+from six.moves.urllib import parse
 from tempest import config
 from tempest.lib.common.utils import data_utils
 from tempest.lib import exceptions
@@ -139,6 +140,15 @@
         self.expected_success(202, resp.status)
         return body
 
+    @staticmethod
+    def _get_base_url(endpoint):
+        url = parse.urlparse(endpoint)
+        # Get any valid path components before the version string
+        # regex matches version str & everything after (examples: v1, v2, v1.2)
+        base_path = re.split(r'(^|/)+v\d+(\.\d+)?', url.path)[0]
+        base_url = url._replace(path=base_path)
+        return parse.urlunparse(base_url) + '/'
+
     def send_microversion_request(self, version=None, script_name=None):
         """Prepare and send the HTTP GET Request to the base URL.
 
@@ -153,12 +163,19 @@
         headers = self.get_headers()
         url, headers, body = self.auth_provider.auth_request(
             'GET', 'shares', headers, None, self.filters)
-        url = '/'.join(url.split('/')[:3]) + '/'
+        url = self._get_base_url(url)
         if script_name:
             url += script_name + '/'
         if version:
             headers[self.API_MICROVERSIONS_HEADER] = version
+
+        # Handle logging because raw_request doesn't log anything
+        start = time.time()
+        self._log_request_start('GET', url)
         resp, resp_body = self.raw_request(url, 'GET', headers=headers)
+        end = time.time()
+        self._log_request(
+            'GET', url, resp, secs=(end - start), resp_body=resp_body)
         self.response_checker('GET', resp, resp_body)
         resp_body = json.loads(resp_body)
         return resp, resp_body
@@ -243,7 +260,7 @@
         """Get list of shares w/o filters."""
         headers = EXPERIMENTAL if experimental else None
         uri = 'shares/detail' if detailed else 'shares'
-        uri += '?%s' % urlparse.urlencode(params) if params else ''
+        uri += '?%s' % parse.urlencode(params) if params else ''
         resp, body = self.get(uri, headers=headers, extra_headers=experimental,
                               version=version)
         self.expected_success(200, resp.status)
@@ -284,7 +301,7 @@
     def delete_share(self, share_id, params=None,
                      version=LATEST_MICROVERSION):
         uri = "shares/%s" % share_id
-        uri += '?%s' % (urlparse.urlencode(params) if params else '')
+        uri += '?%s' % (parse.urlencode(params) if params else '')
         resp, body = self.delete(uri, version=version)
         self.expected_success(202, resp.status)
         return body
@@ -300,7 +317,7 @@
     def list_share_instances(self, version=LATEST_MICROVERSION,
                              params=None):
         uri = 'share_instances'
-        uri += '?%s' % urlparse.urlencode(params) if params else ''
+        uri += '?%s' % parse.urlencode(params) if params else ''
         resp, body = self.get(uri, version=version)
         self.expected_success(200, resp.status)
         return self._parse_resp(body)
@@ -494,7 +511,7 @@
                        version=LATEST_MICROVERSION):
         """Get list of share snapshots w/o filters."""
         uri = 'snapshots/detail' if detailed else 'snapshots'
-        uri += '?%s' % urlparse.urlencode(params) if params else ''
+        uri += '?%s' % parse.urlencode(params) if params else ''
         resp, body = self.get(uri, version=version)
         self.expected_success(200, resp.status)
         return self._parse_resp(body)
@@ -610,7 +627,7 @@
                                    version=LATEST_MICROVERSION):
         uri = "types/%s/extra_specs" % share_type_id
         if params is not None:
-            uri += '?%s' % urlparse.urlencode(params)
+            uri += '?%s' % parse.urlencode(params)
         resp, body = self.get(uri, version=version)
         self.expected_success(200, resp.status)
         return self._parse_resp(body)
@@ -774,7 +791,7 @@
         params = sorted(
             [(k, v) for (k, v) in list(metadata.items()) if v])
         if params:
-            query_string = "&%s" % urlparse.urlencode(params)
+            query_string = "&%s" % parse.urlencode(params)
 
         url = 'share-access-rules?share_id=%s' % share_id + query_string
         resp, body = self.get(url, version=version)
@@ -841,7 +858,7 @@
             else:
                 url = 'os-services'
         if params:
-            url += '?%s' % urlparse.urlencode(params)
+            url += '?%s' % parse.urlencode(params)
         resp, body = self.get(url, version=version)
         self.expected_success(200, resp.status)
         return self._parse_resp(body)
@@ -854,7 +871,7 @@
         if default:
             uri += '/default'
         if params is not None:
-            uri += '?%s' % urlparse.urlencode(params)
+            uri += '?%s' % parse.urlencode(params)
         resp, body = self.get(uri, version=version)
         self.expected_success(200, resp.status)
         return self._parse_resp(body)
@@ -1039,7 +1056,7 @@
                           version=LATEST_MICROVERSION):
         """Get list of share groups w/o filters."""
         uri = 'share-groups%s' % ('/detail' if detailed else '')
-        uri += '?%s' % (urlparse.urlencode(params) if params else '')
+        uri += '?%s' % (parse.urlencode(params) if params else '')
         resp, body = self.get(uri, headers=EXPERIMENTAL, extra_headers=True,
                               version=version)
         self.expected_success(200, resp.status)
@@ -1135,7 +1152,7 @@
                                version=LATEST_MICROVERSION):
         """Get list of share group types."""
         uri = 'share-group-types%s' % ('/detail' if detailed else '')
-        uri += '?%s' % (urlparse.urlencode(params) if params else '')
+        uri += '?%s' % (parse.urlencode(params) if params else '')
         resp, body = self.get(uri, headers=EXPERIMENTAL, extra_headers=True,
                               version=version)
         self.expected_success(200, resp.status)
@@ -1221,7 +1238,7 @@
                                     version=LATEST_MICROVERSION):
         uri = "share-group-types/%s/group_specs" % share_group_type_id
         if params is not None:
-            uri += '?%s' % urlparse.urlencode(params)
+            uri += '?%s' % parse.urlencode(params)
         resp, body = self.get(uri, headers=EXPERIMENTAL, extra_headers=True,
                               version=version)
         self.expected_success(200, resp.status)
@@ -1285,7 +1302,7 @@
                                    version=LATEST_MICROVERSION):
         """Get list of share group snapshots w/o filters."""
         uri = 'share-group-snapshots%s' % ('/detail' if detailed else '')
-        uri += '?%s' % (urlparse.urlencode(params) if params else '')
+        uri += '?%s' % (parse.urlencode(params) if params else '')
         resp, body = self.get(uri, headers=EXPERIMENTAL, extra_headers=True,
                               version=version)
         self.expected_success(200, resp.status)
@@ -1647,7 +1664,7 @@
                             version=LATEST_MICROVERSION):
         """Get list of share networks w/o filters."""
         uri = 'share-networks/detail' if detailed else 'share-networks'
-        uri += '?%s' % urlparse.urlencode(params) if params else ''
+        uri += '?%s' % parse.urlencode(params) if params else ''
         resp, body = self.get(uri, version=version)
         self.expected_success(200, resp.status)
         return self._parse_resp(body)
@@ -1775,7 +1792,7 @@
     def list_messages(self, params=None, version=LATEST_MICROVERSION):
         """List all messages."""
         url = 'messages'
-        url += '?%s' % urlparse.urlencode(params) if params else ''
+        url += '?%s' % parse.urlencode(params) if params else ''
         resp, body = self.get(url, version=version)
         self.expected_success(200, resp.status)
         return self._parse_resp(body)
@@ -1850,7 +1867,7 @@
         if detailed:
             uri += '/detail'
         if params:
-            uri += "?%s" % urlparse.urlencode(params)
+            uri += "?%s" % parse.urlencode(params)
         resp, body = self.get(uri, version=version)
         self.expected_success(200, resp.status)
         return self._parse_resp(body)
