コード例 #1
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 为空,无需再进行不传部分必传的验证!')
コード例 #2
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 为空,无需再进行部分参数类型不正确的验证!')
コード例 #3
0
    def initTestInterface(self):

        ms = ManageSqlite(DB_FILE_PATH)
        # 判断如果数据库已有 token和providerid 就不用再次访问了
        try:
            ms.DropTable(LOGIN_TABLE_NAME)
            ms.CreateTable(self.create_apitoken_table_str)
        except:
            s = ms.Select_Sql('select providerId,token,userid from %s' % LOGIN_TABLE_NAME)
            logger.info(s)
            ms.Close()
            return s[0]
        myses = session()
        # 客服登录
        try:
            interface_dict = V0_Interface.api_login
            logger.info(interface_dict['describtion'],printstatus=True)
            myses.setBody(interface_dict['body'])
            myses.changeBody('email', user_saas)
            myses.changeBody('password', pwd_saas)
            result = myses.post(interface_dict['second_url'],printtype=True)
            # print result
            code = result['result']['code']
            user_id = result['result']['user_id']
        except Exception as e:
            logger.error("%s ERROE, please check service or http agent is open!\n" % (interface_dict['second_url']))
            raise(e)
        # 获取token
        try:
            interface_dict = V0_Interface.api_token
            logger.info(interface_dict['describtion'],printstatus=False)
            myses.setBody(interface_dict['body'])
            myses.changeBody('code', code)
            result = myses.post(interface_dict['second_url'],printtype=False)
            # print result
            token = result['result']['token']
        except Exception as e:
            logger.error("get user token ERROE, please check service!\n")
            raise e
        # 获取provider id
        interface_dict = V0_Interface.api2_OpenHelpCenterApi_getCurrentUserInfo
        logger.info(interface_dict['describtion'],printstatus=False)
        myses.setParams(interface_dict['params'])
        myses.changeParams('_token', token)
        result = myses.post(interface_dict['second_url'],printtype=False)
        # print result
        providerid = result['result']['providerId']
        myses.close()
        # 写入数据库 providerid、token
        # ms = ManageSqlite(DB_FILE_PATH)
        # ms.DropTable(LOGIN_TABLE_NAME)
        # ms.CreateTable(createtable_str)
        insert_dict = {'providerId':providerid,'token':token, 'userid':user_id, 'status':'1'}
        ms.Insert_Sql(LOGIN_TABLE_NAME,insert_dict)
        s = ms.Select_Sql('select providerId,token,userid from %s' % LOGIN_TABLE_NAME)
        logger.info(s)
        ms.Close()
        return s[0]
コード例 #4
0
 def test_Sample_1(self):
     self.logCaseID(MyTestCase.get_current_function_name())
     # self.url_apr = 'http://10.40.10.154:8091/apr/login'
     # self.user = '******'
     # self.password = '******'
     # ses = MyTestCase.requests.session()
     # # ses.
     # dict_data = {}
     # r = ses.post(self.url_apr,dict_data)
     # logger.info(r.url + " : %s" % r.status_code)
     # ss = r.content
     # print r.text
     # ses.close()
     mid = time.ctime()
     logger.info("testSample1 mid time is : %s " % mid)
     time.sleep(1)
コード例 #5
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 本就为空,无需再进行不传所有参数的验证!')
コード例 #6
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 为空,无需再进行部分必传参数为空的验证!')
コード例 #7
0
 def engineerLogin(self,providerid,user_id):
     # 客服登录并建立长连接传到push上(主要保证会话发起能成功)
     logger.info('ws://push.itkeeping.com/cometd; providerid:%s, userid:%s' % (providerid,user_id))
     ws = create_connection('ws://push.itkeeping.com/cometd',timeout=600)
     msg = [{
         'user': {
             'id': user_id,
             'providerId': providerid,
             'platform': "web_console"
         },
         'advice': {
             'timeout': 60000,
             'interval': 0
         },
         'supportedConnectionTypes': ["websocket", "long-polling", "callback-polling"],
         'channel': "/meta/handshake",
         'id': "1",
         'minimumVersion': "1.0",
         'version': "1.0"
     }]
     ws.send(json.dumps(msg))
     # ws.send(msg)
     logger.info("Receiving...")
     result = ws.recv()
     logger.info(str(result))
     new_result = json.loads(result)
     self.assert_Equal(new_result[0]['successful'],True)
     session_id = new_result[0]['clientId']
     return session_id
コード例 #8
0
 def user_Login(cls, user, pwd):
     myses = InterfaceSession()
     # 登录
     interface_dict = V0_Interface.api_login
     logger.info(interface_dict['describtion'])
     myses.setBody(interface_dict['body'])
     myses.changeBody('email', user)
     myses.changeBody('password', pwd)
     result = myses.post(interface_dict['second_url'])
     # print result
     code = result['result']['code']
     # 获取token
     interface_dict = V0_Interface.api_token
     logger.info(interface_dict['describtion'])
     myses.setBody(interface_dict['body'])
     myses.changeBody('code', code)
     result = myses.post(interface_dict['second_url'])
     # print result
     token = result['result']['token']
     # 获取provider id
     interface_dict = V0_Interface.api2_OpenHelpCenterApi_getCurrentUserInfo
     logger.info(interface_dict['describtion'])
     myses.setParams(interface_dict['params'])
     myses.changeParams('_token', token)
     result = myses.post(interface_dict['second_url'])
     # print result
     providerid = result['result']['providerId']
     myses.close()
     return {'token': token, 'provider_id': providerid}
コード例 #9
0
 def tearDown(self):
     after = time.ctime()
     logger.info("testSample1 after time is : %s " % after)
コード例 #10
0
 def tearDown(self):
     logger.info(
         "------------------------ tearDown Start -----------------------")
コード例 #11
0
 def tearDownClass(cls):
     logger.info(
         "==================== TearDown Class Start =====================")
コード例 #12
0
 def setUpClass(cls):
     # 单个用例unittest调试时,将必须初始化logger
     # logger.initLogger()
     logger.info(
         "======================= SetUp Class Start =====================")
コード例 #13
0
 def setUp(self):
     logger.info(
         "------------------------- SetUp Start -------------------------")
     self.exe_status = 0
コード例 #14
0
 def logStep(self, msg):
     logger.info("[Step]:" + msg)
コード例 #15
0
 def logCaseID(self, casename):
     logger.info('[CaseID]:' + casename)
コード例 #16
0
 def setUp(self):
     print('\n================================================>')
     before = time.ctime()
     logger.info("testSample1 before time is : %s " % before)
コード例 #17
0
 def test_Sample_2(self):
     time.sleep(1)
     mid = time.ctime()
     self.assertEqual(4, 5, "4,5 Not equal")
     logger.info("testSample2 mid time is : %s " % mid)
     time.sleep(1)
コード例 #18
0
 def take_screenshot(self, save_fn="capture.png"):
     picpath = os.path.join(
         self.pic_dir, "{}_({}){}.png".format(Get_Now_TimeStr(),
                                              random_strs(6), save_fn))
     logger.info("log picture at; %s" % (picpath))
     self.save_screenshot(picpath)