Ejemplo n.º 1
0
    def __init__(self):
        super(BusinessApi, self).__init__()
        self.http = HttpHandler()
        self.config = Config()
        self.read = ExcelData
        self.mysql = MysqlData()

        self.url = self.config.get_config('HTTP', 'baseurl')  # 4.0PC网站地址
        self.appapi_url = self.config.get_config('HTTP',
                                                 'appapi')  # 4.0-appapi接口地址
        self.webapi_url = self.config.get_config('HTTP',
                                                 'webapi')  # 4.0-appapi接口地址
        self.username = self.config.get_config('DATABASE', 'username')
        self.password = self.config.get_config('DATABASE', 'password')
        self.login_path = self.config.get_config('DATABASE',
                                                 'login_path')  # 登录接口API

        self.data_address = self.config.get_config('DATABASE', 'data_address')
        self.port = self.config.get_config('HTTP', 'port')

        self.post_data = {
            "cmd": "login",
            "params": {
                "login_type": "a7d3bbc5-dcb7-53ff-2df1-af203a832b52",
                "account": self.username,
                "password": self.password,
                "openid": ""
            }
        }
Ejemplo n.º 2
0
 def setUpClass(cls):
     cls.http = HttpHandler()
     cls.lib = BusinessApi()
     cls.mysql = MysqlData()
     cls.config = Config()
     cls.randomc = Random_Chinese()
     cls.user = cls.lib.get_token()
Ejemplo n.º 3
0
 def __init__(self):
     super(UserData, self).__init__()
     self.mysql = MysqlData()
     self.http = HttpHandler()
     self.config = Config()
     self.url_4 = self.config.get_config('HTTP', 'baseurl_dev') # 4.0接口地址
     self.login_path = self.config.get_config('DATABASE', 'login_path') # 登录接口API
Ejemplo n.º 4
0
 def setUpClass(cls):
     # 类方法之前执行
     cls.http = HttpHandler()
     cls.lib = BusinessApi()
     cls.mysql = MysqlData()
     cls.config = Config()
     cls.right_start = [
         '130', '131', '132', '133', '134', '135', '136', '137', '138',
         '139', '145', '146', '147', '148', '149', '150', '151', '152',
         '153', '155', '156', '157', '158', '159', '165', '166', '171',
         '172', '173', '174', '175', '176', '177', '178', '180', '181',
         '182', '183', '184', '185', '186', '187', '188', '189', '191',
         '198', '199'
     ]
     cls.error_start = [
         '100', '101', '102', '103', '104', '105', '106', '107', '108',
         '109', '110', '111', '112', '113', '114', '115', '116', '117',
         '118', '119', '120', '121', '122', '123', '124', '125', '126',
         '127', '128', '129', '140', '141', '142', '143', '144', '154',
         '160', '161', '162', '163', '164', '167', '168', '169', '170',
         '179', '190', '192', '193', '194', '195', '196', '197'
     ]
Ejemplo n.º 5
0
 def setUpClass(cls):
     cls.http = HttpHandler()
     cls.lib = BusinessApi()
     cls.mysql = MysqlData()
     cls.config = Config()
Ejemplo n.º 6
0
 def setUxxlass(cls):
     cls.http = HttpHandler()
     cls.lib = BusinessApi()
     cls.mysql = MysqlData()
     cls.config = Config()
     cls.user = cls.lib.get_token()
Ejemplo n.º 7
0
class BusinessApi(HttpHandler):
    def __init__(self):
        super(BusinessApi, self).__init__()
        self.http = HttpHandler()
        self.config = Config()
        self.read = ExcelData
        self.mysql = MysqlData()

        self.url = self.config.get_config('HTTP', 'baseurl')  # 4.0PC网站地址
        self.appapi_url = self.config.get_config('HTTP',
                                                 'appapi')  # 4.0-appapi接口地址
        self.webapi_url = self.config.get_config('HTTP',
                                                 'webapi')  # 4.0-appapi接口地址
        self.username = self.config.get_config('DATABASE', 'username')
        self.password = self.config.get_config('DATABASE', 'password')
        self.login_path = self.config.get_config('DATABASE',
                                                 'login_path')  # 登录接口API

        self.data_address = self.config.get_config('DATABASE', 'data_address')
        self.port = self.config.get_config('HTTP', 'port')

        self.post_data = {
            "cmd": "login",
            "params": {
                "login_type": "a7d3bbc5-dcb7-53ff-2df1-af203a832b52",
                "account": self.username,
                "password": self.password,
                "openid": ""
            }
        }

    def get_token(self):
        ''' 获取登录的token 并更新配置文件config.ini token和loginuid数据'''

        # print(self.post_data)
        # print(self.url_4 + self.login_path)
        post_data = json.dumps(self.post_data)
        resp = json.loads(
            self.http.post(self.webapi_url + self.login_path, data=post_data))
        # print(resp)
        if self.get_value(resp, 'info') == '登录成功!':
            token_data = str(self.http.get_value(resp, 'logintoken'))
            loginuid_data = str(self.http.get_value(resp, 'loginuid'))
            self.config.set_config('DATABASE', 'token', token_data)
            self.config.set_config('DATABASE', 'loginuid', loginuid_data)
            return loginuid_data, token_data
        else:
            print('登录失败或接口错误')

    def login(self, userid, password):
        '''

        :return: 用户登录
        '''
        data = {
            "cmd": "login",
            "params": {
                "login_type": "a7d3bbc5-dcb7-53ff-2df1-af203a832b52",
                "account": "Yilia",
                "password": "******",
                "openid": ""
            }
        }
        select_data = "SELECT tc002_name, tc002_login_token from gt002_user_auth where tc001_user_id = %s" % userid
        select_data = self.change_list(select_data)
        data['params']['account'] = select_data[0]
        data['params']['password'] = password
        data = json.dumps(data)
        result = json.loads(
            self.http.post(self.webapi_url + self.login_path, data=data))
        return self.http.get_value(result, 'logintoken')

    def write_user(self, num):
        '''

        :param num: 写入第几个工作簿
        :return:
        '''
        # print(len(data_user))
        # print(data_user[0])
        self.data_user = ExcelData('user').readData()
        self.write0 = WriteData(num)
        i = 2
        j = 3
        l = 4
        k = 1
        for data in self.data_user:
            data = data.get('body')
            # print(data)
            data = ast.literal_eval(data)
            resp = json.loads(self.http.post(self.url, data=data))
            # print(resp )
            if self.http.get_value(resp, 'err_msg') == 'success':
                self.write0.write(k, j, self.http.get_value(resp, 'userid'))
                # print(k,j,self.http.get_value(resp, 'userid'))
                self.write0.write(k, i, self.http.get_value(resp, 'token'))
                # print(k,i,self.http.get_value(resp, 'token'))

            self.write0.write(k, l, self.http.get_value(resp, 'err_msg'))
            k += 1

        bookname = random.randint(0, 100)
        self.write0.save('{}.xls'.format(bookname))

    def write_body(self, params, num):
        '''
        将body写入excel中
        :param params: 需要传入参数,比如礼物列表活动类型
        :param num: 写入工作簿的第几个表格
        :return:
        '''
        self.get_user = self.read('user').readData()
        write2 = WriteData(num)
        dict_body = collections.OrderedDict()
        k = 1
        i = 2
        for data in self.get_user:
            self.loginuid = data.get('loginuid')
            self.logintoken = data.get('token')
            if self.loginuid != '':
                self.loginuid = int(self.loginuid)
                dict_body['loginuid'] = self.loginuid
                dict_body['logintoken'] = self.logintoken
                dict_body['params'] = params
                body = json.dumps(dict_body)
                # body = str(dict_body)
                write2.write(k, i, body)
                # print(body)

                k += 1
        bookname = random.randint(0, 100)
        write2.save('{}.xls'.format(bookname))
        # return dict_body

    def repeat_test(self, items):
        '''
        判断列表中是否有重复的数据
        :param items: 列表
        :return:
        '''
        if len(items) > 0:
            for item in items:
                if items.count(item) != 1:
                    print('detail_id重复的数据有{}'.format(item))
                    return False
                else:
                    print('detail_id没有重复的数据')
                    return True
        else:
            return "列表没有数据"

    def data_contrast(self, sql, result, data=None):
        '''
        对比数据库的数据和接口请求数据是否相同
        :param sql: 查询数据库语句
        :param result: 调用接口数据
        :param data: 对比数据对象
        :return:
        '''

        i = 0
        select_data = self.mysql.selectAll(sql)
        # print(select_data)
        if type(result) == list:
            for item in result:
                if item == select_data[0][i]:
                    return True
                else:
                    print('接口获取数据{},和查询数据{} 不相等'.format(item,
                                                        select_data)[0][i])
                    return False
        else:
            print(select_data)
            for item in self.http.get_value(result, 'data'):
                print(item, select_data[0][i])
                if item.get(data) == select_data[0][i]:
                    return True
                else:
                    print('接口获取数据{},和查询数据{} 不相等'.format(item,
                                                        select_data)[0][i])
                    return False
                i += 1

    def change_list(self, sql):
        '''

        :param sql: sql语句
        :return: 将tuple转为list
        '''
        select_data = self.mysql.selectAll(sql)
        list_datas = []
        if len(select_data) == 1:
            for item in select_data[0]:
                list_datas.append(item)
            return list_datas
        else:
            for item in select_data:
                list_datas.append(item[0])
            return list_datas

    def api_status_check(self, resp):
        '''

        :param resp: 接口请求返回数据
        :return:
        '''
        err_msg = self.http.get_value(resp, 'err_msg')
        if resp != 200:
            if err_msg == 'success':
                return True
            elif err_msg == 'error' and self.http.get(resp,
                                                      'info') == '没有更多信息':
                return True
            elif err_msg == 'error' and self.http.get(resp,
                                                      'info') == '没有更多信息':
                return True
            else:
                print(resp)
                return False