def NormalTestInterface_lostObject(self, second_url,body,params={},bodyType='form',platfom='SAAS',request_type='post'): logger.debug('*** Body缺少可选参数,请求成功 ***') if self.body_CanLost_object_key != []: self.ses.setParams(params) wrong_count = 0 wrong_key = [] exceptions = 'EXCEPTION List ... \n' for key in self.body_CanLost_object_key: value = body[key] new_body = body new_body.pop(key) self.ses.setBody(new_body) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug('body:%s 缺少' % key) logger.debug(self.ses.result.text) new_body[key] = value try: self.assert_Equal(self.ses.result.status_code, 200, '---> 缺少参数 %s 请求失败!\n' % key) if request_type == 'get': self.assert_Equal(result['status'], 0, '---> 缺少参数 %s 请求返回不正确!\n' % key) else: self.assert_Equal(result['status'], 0, '---> 缺少参数 %s 请求返回不正确!\n' % key) except Exception as e: wrong_count += 1 wrong_key.append(key) exceptions += str(e) + self.ses.result.text + '\n' if wrong_count > 0: raise Exception(exceptions) else: logger.debug(second_url) logger.debug("可选参数为空,不进行部分可选参数不传的验证!")
def delete(self, second_url, body=None, params=None, bodyType='form', platfom='SAAS'): # 判断是独立平台、还是sass if platfom.upper() == 'SAAS': url = self.first_url_saas + second_url else: url = self.first_url_independent + second_url # 判断有无params if params is not None: new_url = url + '?' for key, value in params.items(): new_url = new_url + '%s=%s&' % (key, value) new_url = new_url.rstrip('&') elif params is None and self.params != {}: new_url = url + '?' for key, value in self.params.items(): new_url = new_url + '%s=%s&' % (key, value) new_url = new_url.rstrip('&') elif params is None and self.params == {}: new_url = url else: raise Exception('Params Wrrong !') #请求接口 try: result = {} if body is not None: if bodyType.lower() == 'json': body = json.dumps(body) else: body = body result = self.ses.delete(new_url, body) elif body is None and self.body != {}: if bodyType.lower() == 'json': body = json.dumps(self.body) else: body = self.body result = self.ses.delete(new_url, body) elif body is None and self.body == {}: result = self.ses.delete(new_url) logger.debug(new_url) logger.debug('body:' + str(body)) except Exception as e: raise e self.result = result self.url = result.url try: result_json = result.json() return result_json except: return result.content else: return result
def AbNormalTestInterface(self, second_url,body,params={},bodyType='form',platfom='SAAS',request_type='post'): logger.debug('*** 异常请求,请求失败 ***') self.ses.setParams(params) self.ses.setBody(body) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug(self.ses.result.text) self.assert_Equal(self.ses.result.status_code, 200, self.ses.result.url) if request_type == 'get': self.assert_Not_Equal(result['status'], 0, self.ses.result.content) else: self.assert_Not_Equal(result['status'], 0, self.ses.result.content) return result
def AbNormalTestInterface_LostParamsAllObject(self, second_url,params={},body={},bodyType='form',platfom='SAAS',request_type='post'): logger.debug('*** Params缺少所有参数,请求失败 ***') self.ses.setParams({}) if params != {} and params != None: self.ses.setBody(body) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug(self.ses.result.text) self.assert_Equal(self.ses.result.status_code, 200, self.ses.result.url) if request_type == 'get': self.assert_Not_Equal(result['status'], 0, self.ses.result.content) else: self.assert_Not_Equal(result['status'], 0, self.ses.result.content) return result else: logger.info('body 本就为空,无需再进行不传所有参数的验证!')
def NormalTestInterface(self, second_url,body,params={},bodyType='form',platfom='SAAS',request_type='post',interface_Type='v1v2',login_body={}): logger.debug('*** 正常参数请求,请求成功 ***') if login_body != {}: self.ses.holdCookie(login_body) self.ses.setParams(params) self.ses.setBody(body) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug(self.ses.result.text) self.assert_Equal(self.ses.result.status_code, 200, self.ses.result.url) if request_type == 'get': if interface_Type == 'v1v2': self.assert_Equal(result['status'], 0, self.ses.result.content) else: self.assert_Equal(result['success'],True,self.ses.result.content) else: if interface_Type == 'v1v2': self.assert_Equal(result['status'], 0, self.ses.result.content) else: self.assert_Equal(result['success'],True,self.ses.result.content) return result
def AbNormalTestInterface_LostParamsObject(self, second_url,body,params={},bodyType='form',platfom='SAAS',liwai=[],request_type='post',login_body={}): logger.debug('*** Params中缺少必传参数,请求失败 ***') if login_body != {}: self.ses.holdCookie(login_body) self.ses.setBody(body) if params != {} and params != None: wrong_count = 0 wrong_key = [] exceptions = 'EXCEPTION List ... \n' for key,value in params.items(): if key not in self.params_CanLost_object_key and key not in liwai: new_params = params new_params.pop(key) self.ses.setParams(new_params) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug('params:%s 缺少' % key) logger.debug(self.ses.result.text) new_params[key] = value try: self.assert_Equal(self.ses.result.status_code, 200, '---> 缺少参数 %s 请求失败!\n' % key) if request_type == 'get': self.assert_Not_Equal(result['status'], 0, '---> 缺少参数 %s 请求返回不正确!\n' % key) else: self.assert_Not_Equal(result['status'], 0, '---> 缺少参数 %s 请求返回不正确!\n' % key) except Exception as e: wrong_count += 1 wrong_key.append(key) exceptions += str(e) + self.ses.result.text + '\n' if wrong_count > 0: raise Exception(exceptions) else: logger.info('params 为空,无需再进行不传部分必传的验证!')
def AbNormalTestInterface_isWrongType(self, second_url,body,params={},bodyType='form',platfom='SAAS',liwai=[],request_type='post'): logger.debug('*** Body中参数分别为错误的数据类型,请求失败 ***') self.ses.setParams(params) if body != {} and body != None: wrong_count = 0 wrong_key = [] exceptions = 'EXCEPTION List ... \n' for key,value in body.items(): if key not in self.body_CanLost_object_key and key not in liwai: new_value = self.returnTargetWrongType(value) new_body = body new_body[key] = new_value self.ses.setBody(new_body) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug('body:%s 为错误的数据类型' % key) logger.debug(self.ses.result.text) new_body[key] = value try: self.assert_Equal(self.ses.result.status_code, 200, '---> 参数 %s 为错误的数据类型 请求失败!\n' % key) if request_type == 'get': self.assert_Not_Equal(result['status'], 0, '---> 参数 %s 为错误的数据类型 请求返回不正确!\n' % key) self.assert_isnotNone(result['result']['error_description'], '---> 参数 %s 为错误的数据类型 请求返回不正确!\n' % key) else: self.assert_Not_Equal(result['status'], 0, '---> 参数 %s 为错误的数据类型 请求返回不正确!\n' % key) self.assert_isnotNone(result['result']['error_description'], '---> 参数 %s 为错误的数据类型 请求返回不正确!\n' % key) except Exception as e: wrong_count += 1 wrong_key.append(key) exceptions += str(e) + self.ses.result.text + '\n' if wrong_count > 0: raise Exception(exceptions) else: logger.info('body 为空,无需再进行部分参数类型不正确的验证!')
def NormalTestInterface_lostParamsObject(self, second_url,body,params,bodyType='form',platfom='SAAS',request_type='post',interface_Type='v1v2',login_body={}): logger.debug('*** Params缺少可选参数,请求成功 ***') if self.params_CanLost_object_key != []: if login_body != {}: self.ses.holdCookie(login_body) self.ses.setBody(body) wrong_count = 0 wrong_key = [] exceptions = 'EXCEPTION List ... \n' for key in self.params_CanLost_object_key: value = params[key] new_params = params new_params.pop(key) self.ses.setParams(new_params) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug('params:%s 缺少' % key) logger.debug(self.ses.result.text) new_params[key] = value try: self.assert_Equal(self.ses.result.status_code, 200, '---> 缺少可选参数 %s 请求不应该失败!\n' % key) if request_type == 'get': if interface_Type == 'v1v2': self.assert_Equal(result['status'], 0, '---> 缺少可选参数 %s 请求不应该失败!\n' % key) else: self.assert_Equal(result['success'], True, '---> 缺少可选参数 %s 请求不应该失败!\n' % key) else: if interface_Type == 'v1v2': self.assert_Equal(result['status'], 0, '---> 缺少可选参数 %s 请求不应该失败!\n' % key) else: self.assert_Equal(result['success'], True, '---> 缺少可选参数 %s 请求不应该失败!\n' % key) except Exception as e: wrong_count += 1 wrong_key.append(key) exceptions += str(e) + self.ses.result.text + '\n' if wrong_count > 0: raise Exception(exceptions) else: logger.debug(second_url) logger.debug("可选参数为空,不进行部分可选参数不传的验证!")
def NormalTestInterface_compatibilityObject(self, second_url,body,params={},bodyType='form',platfom='SAAS',request_type='post',interface_Type='v1v2'): logger.debug('*** 正常参数请求,请求成功 ***') if self.body_CanCompatibility_object_key !=[]: self.ses.setParams(params) wrong_count = 0 wrong_key = [] exceptions = 'EXCEPTION List ... \n' for key in self.body_CanCompatibility_object_key: value = body[key] new_value = str(value) new_body = body new_body[key] = new_value self.ses.setBody(new_body) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug('body:%s 为可兼容的数据类型' % key) logger.debug(self.ses.result.text) self.assert_Equal(self.ses.result.status_code, 200, self.ses.result.url) if request_type == 'get': if interface_Type == 'v1v2': self.assert_Equal(result['status'], 0, self.ses.result.content) else: self.assert_Equal(result['success'],True,self.ses.result.content) else: if interface_Type == 'v1v2': self.assert_Equal(result['status'], 0, self.ses.result.content) else: self.assert_Equal(result['success'],True,self.ses.result.content) return result
def get(self, second_url, params=None, bodyType=None, platfom='SAAS'): #判断是独立平台、还是sass if platfom.upper() == 'SAAS': url = self.first_url_saas + second_url else: url = self.first_url_independent + second_url #判断有无params if params is not None and self.params == {}: new_url = url + '?' for key, value in params.items(): new_url = new_url + '%s=%s&' % (key, value) new_url.rstrip('&') elif params is None and self.params != {}: new_url = url + '?' for key, value in self.params.items(): new_url = new_url + '%s=%s&' % (key, value) new_url.rstrip('&') elif params is None and self.params == {}: new_url = url else: raise Exception('Params Wrrong !') # 请求接口 try: logger.debug(new_url) result = self.ses.get(new_url) except Exception as e: raise e self.result = result self.url = result.url try: result_json = result.json() return result_json except: return result.content else: return result
def AbNormalTestInterface_isParamsEmptyObject(self, second_url,body,params,bodyType='form',platfom='SAAS',liwai=[],request_type='post',login_body={}): logger.debug('*** Params中参数分别为Empty,请求失败 ***') if login_body != {}: self.ses.holdCookie(login_body) self.ses.setBody(body) if params != {} and params != None: wrong_count = 0 wrong_key = [] exceptions = 'EXCEPTION List ... \n' for key,value in params.items(): if key not in self.params_CanLost_object_key and key not in liwai: new_value = self.returnTargetEmptyObject(value) new_params = params new_params[key] = new_value self.ses.setParams(new_params) requstsFunc = getattr(self.ses, request_type) result = requstsFunc(second_url, bodyType=bodyType, platfom=platfom) logger.debug('params:%s 为Empty' % key) logger.debug(self.ses.result.text) new_params[key] = value try: self.assert_Equal(self.ses.result.status_code, 200, '---> 参数 %s 为Empty 请求失败!\n' % key) if key in self.params_MustAndCanEmpty_object_key: if request_type == 'get': self.assert_Equal(result['status'], 0, '---> 参数 %s 可以为Empty 请求返回不正确!\n' % key) else: self.assert_Equal(result['status'], 0, '---> 参数 %s 可以为Empty 请求返回不正确!\n' % key) else: if request_type == 'get': self.assert_Not_Equal(result['status'], 0, '---> 参数 %s 为Empty 请求返回不正确!\n' % key) self.assert_isnotNone(result['result']['error_description'], '---> 参数 %s 为Empty 请求返回不正确!\n' % key) else: self.assert_Not_Equal(result['status'], 0, '---> 参数 %s 为Empty 请求返回不正确!\n' % key) self.assert_isnotNone(result['result']['error_description'], '---> 参数 %s 为Empty 请求返回不正确!\n' % key) except Exception as e: wrong_count += 1 wrong_key.append(key) exceptions += str(e) + self.ses.result.text + '\n' else: logger.info('params: %s 可以空,无需再进行部分必传参数为空的验证!' % key) if wrong_count > 0: raise Exception(exceptions) else: logger.info('params 为空,无需再进行部分必传参数为空的验证!')