Exemple #1
0
 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("可选参数为空,不进行部分可选参数不传的验证!")
Exemple #2
0
    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
Exemple #3
0
 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
Exemple #4
0
 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 本就为空,无需再进行不传所有参数的验证!')
Exemple #5
0
 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
Exemple #6
0
 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 为空,无需再进行不传部分必传的验证!')
Exemple #7
0
 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 为空,无需再进行部分参数类型不正确的验证!')
Exemple #8
0
 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("可选参数为空,不进行部分可选参数不传的验证!")
Exemple #9
0
 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
Exemple #10
0
    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
Exemple #11
0
 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 为空,无需再进行部分必传参数为空的验证!')