'Two requests are loosely equal (or variants) if:
- They have the same URL
- They have the same HTTP method
- They have the same parameter names
- The values for each parameter have the same type (int / string)
:return: True if self and other are variants.'

def is_variant_of(self, other):

    if (self.get_method() != other.get_method()):
        return False
    if (self.get_url() != other.get_url()):
        return False
    self_qs = self.get_uri().querystring
    other_qs = other.get_uri().querystring
    if (not self_qs.is_variant_of(other_qs)):
        return False
    return True
