Exemplo n.º 1
0
def get_env_access_token(env, pid):
    '''
    通过不同的env来获取不同的access_token
    :param env: 环境
    :param pid: 商家id
    :return: 返回不同环境的access_token
    '''

    if pid == None:
        if env == 'QA':
            pid = 1
        if env == 'DEV':
            pid = 17
        # TODO 预留prod环境
        if env == 'PROD':
            pid = 17

    access_token = None
    if env == 'QA':
        opera = OperationIni(fileName='config.ini', pathName='config')
        access_token = opera.read_ini(section='access_token',
                                      key='qa_{0}_access_token'.format(pid))
    if env == 'DEV':
        # 大坑:一定要在每个if中重新调用读取ini文件的方法,要不然读取的内容不是最新的
        opera = OperationIni(fileName='config.ini', pathName='config')
        access_token = opera.read_ini(section='access_token',
                                      key='dev_{0}_access_token'.format(pid))
    if env == 'PROD':
        opera = OperationIni(fileName='config.ini', pathName='config')
        access_token = opera.read_ini(section='access_token',
                                      key='prod_{0}_access_token'.format(pid))

    return access_token
Exemplo n.º 2
0
    def __init__(self, env='QA'):
        self.log = Logger("debug")
        self.opera = OperationIni(fileName='config.ini', pathName='config')
        path = '/website/saas/account/api2/user/login'
        self.key = env.lower() + '_token'
        d = get_env_authorization(env=env)
        self.url = d[0] + path
        self.cookie = d[1]
        self.userName = d[2]
        self.passWord = d[3]

        # if env == 'QA':
        #     self.url = self.opera.read_ini(section='Authorization', key='qa_url') + path
        #     self.cookie = self.opera.read_ini(section='Authorization', key='qa_cookie')
        #     self.userName = self.opera.read_ini(section='Authorization', key='qa_username')
        #     self.passWord = self.opera.read_ini(section='Authorization', key='qa_password')
        # if env == 'DEV':
        #     self.url = self.opera.read_ini(section='Authorization', key='dev_url') + path
        #     self.cookie = self.opera.read_ini(section='Authorization', key='dev_cookie')
        #     self.userName = self.opera.read_ini(section='Authorization', key='dev_username')
        #     self.passWord = self.opera.read_ini(section='Authorization', key='dev_password')

        self.headers = {
            'Cookie': self.cookie,
            'Content-Type': 'application/x-www-form-urlencoded'
        }
Exemplo n.º 3
0
    def __init__(self, env, serviceName):
        self.log = Logger("debug")

        opera = OperationIni()

        chrome_driver = findPath.data_dir(fileName='chromedriver.exe',
                                          pathName='driver')
        base_url = opera.read_ini(section='CONFIG', key='base_url')
        url = base_url + opera.read_ini(section=env, key='url')

        self.userName = opera.read_ini(section='CONFIG', key='userName')
        self.passWord = opera.read_ini(section='CONFIG', key='passWord')
        self.ServiceName = opera.read_ini(section='CONFIG', key=serviceName)

        chrome_options = Options()
        # 设置chrome浏览器无界面模式
        chrome_options.add_argument('--headless')

        self.log.info("开始调用webdriver,当前模式为Chrome无界面模式")
        self.d = webdriver.Chrome(executable_path=chrome_driver,
                                  chrome_options=chrome_options)
        self.d.maximize_window()
        self.log.info('成功打开谷歌浏览器')
        self.d.get(url)
        self.d.implicitly_wait(30)
        print('成功打开网址:{0}'.format(url))
        self.log.info('成功打开网址:{0}'.format(url))
Exemplo n.º 4
0
def get_env_access_token(env):
    '''
    通过不同的env来获取不同的access_token
    :param env: 环境
    :return: 返回不同环境的access_token
    '''
    access_token = None

    if env == 'QA':
        opera = OperationIni(fileName='config.ini', pathName='config')
        access_token = opera.read_ini(section='access_token',
                                      key='qa_access_token')
    if env == 'DEV':
        # 大坑:一定要在每个if中重新调用读取ini文件的方法,要不然读取的内容不是最新的
        opera = OperationIni(fileName='config.ini', pathName='config')
        access_token = opera.read_ini(section='access_token',
                                      key='dev_access_token')

    return access_token
Exemplo n.º 5
0
    def __init__(self, env='QA'):
        self.log = Logger("debug")
        opera = OperationIni(fileName='config.ini', pathName='config')
        self.env = env
        self.get_access_token = GetAccessToken(env=env)

        # env字符串转小写
        env = env.lower()
        key = env + '_url'
        self.url = opera.read_ini(section='goods', key=key)
        self.path = opera.read_ini(section='goods', key='queryGoodsDetail')

        self.access_token = self.get_access_token.get_ini_access_token()
Exemplo n.º 6
0
    def __init__(self, pid, env='QA'):
        self.log = Logger("debug")
        opera = OperationIni(fileName='config.ini', pathName='config')
        self.get_skuId = GetGoodsDetail(env=env, pid=pid)
        self.get_access_token = GetAccessToken(env=env, pid=pid)

        # env字符串转小写
        env = env.lower()
        key = env + '_url'

        self.base_url = opera.read_ini(section='goods', key=key)
        self.path = opera.read_ini(section='goods', key='wholeUpdateStock')
        self.access_token = self.get_access_token.get_ini_access_token()
Exemplo n.º 7
0
    def __init__(self, env='QA'):
        self.log = Logger("debug")

        self.opera = OperationIni(fileName='config.ini', pathName='config')

        # 获取鉴权参数
        self.clientId = translate_env_access_token(env=env)[0]
        self.clientSecret = translate_env_access_token(env=env)[1]

        self.env = env
        # env字符串转小写
        self.l_env = env.lower()

        self.key = self.l_env + '_url'

        # 获取ini文件中的base_url
        base_url = self.opera.read_ini(section='access_token', key=self.key)
        self.url = base_url.format(self.clientId, self.clientSecret)
Exemplo n.º 8
0
def get_delivery_type(pid=None,
                      env='QA',
                      storeId=None,
                      deliveryType=1,
                      goodsId=""):
    opera = OperationIni(fileName='config.ini', pathName='config')
    get_access_token = GetAccessToken(env=env, pid=pid)
    print(pid)
    # env字符串转小写
    x_env = env.lower()
    key = x_env + '_url'
    base_url = opera.read_ini(section='goods', key=key)
    path = opera.read_ini(section='goods', key='deliveryType')
    access_token = get_access_token.get_ini_access_token()
    url = base_url.format(path, access_token)

    json_data = {"pid": pid, "storeId": storeId, "goodsId": goodsId}

    log.info('开始:调用get_delivery_type方法,请求地址为:{0},入参为:{1}'.format(
        url, json_data))
    requests.packages.urllib3.disable_warnings()
    r = requests.post(url=url, json=json_data, verify=False)

    # 如果access_token无效
    if r.json()['data'] == 'invalid accesstoken':
        # 获取最新的token并存入ini文件
        log.warning('提示:ini文件中的accesstoken失效,开始获取新的accesstoken')
        get_access_token.set_access_token()
        # 注意:这里一定要重新获取一次ini文件中的access_token
        new_access_token = get_access_token.get_ini_access_token()
        url = base_url.format(path, new_access_token)
        log.warning('开始:调用get_delivery_type方法,请求地址为:{0},入参为:{1}'.format(
            url, json_data))
        requests.packages.urllib3.disable_warnings()
        res = requests.post(url=url, json=json_data, verify=False)
        try:
            deliveryTypeId = delivery_type(result=res.json(),
                                           deliveryType=deliveryType)
            log.warning(
                '结束:调用get_delivery_type方法,返回数据为:{0},返回deliveryTypeId为:{1}'.
                format(res.json(), deliveryTypeId))
            return res.json(), deliveryTypeId
        except Exception as f:
            log.error('调用查询配送方式接口失败,错误日志为:{0}'.format(f))
            return r.json()

    elif r.json()['code']['errmsg'] == '根据Pid查询storeId失败,此商家不存在此门店':
        # 获取最新的token并存入ini文件
        log.warning('提示:根据Pid查询storeId失败,此商家不存在此门店,尝试开始获取新的accesstoken')
        get_access_token.set_access_token()
        # 注意:这里一定要重新获取一次ini文件中的access_token
        new_access_token = get_access_token.get_ini_access_token()
        url = base_url.format(path, new_access_token)
        log.warning('开始:调用get_delivery_type方法,请求地址为:{0},入参为:{1}'.format(
            url, json_data))
        requests.packages.urllib3.disable_warnings()
        res = requests.post(url=url, json=json_data, verify=False)
        try:
            deliveryTypeId = delivery_type(result=res.json(),
                                           deliveryType=deliveryType)
            log.warning(
                '结束:调用get_delivery_type方法,返回数据为:{0},返回deliveryTypeId为:{1}'.
                format(res.json(), deliveryTypeId))
            return res.json(), deliveryTypeId
        except Exception as f:
            log.error('调用查询配送方式接口失败,错误日志为:{0}'.format(f))
            return res.json()

    else:
        deliveryTypeId = delivery_type(result=r.json(),
                                       deliveryType=deliveryType)
        log.info(
            '结束:调用get_delivery_type方法,返回数据为:{0},返回deliveryTypeId为:{1}'.format(
                r.json(), deliveryTypeId))
        # print('ddddd:',deliveryTypeId)
        return r.json(), deliveryTypeId
Exemplo n.º 9
0
 def __init__(self, pid, env):
     self.log = Logger("debug")
     self.pid = pid
     self.env = env
     self.opera = OperationIni()
     self.get_order_detail = GetOrderDetail(pid=pid, env=env)
Exemplo n.º 10
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019/8/8 18:09
# @Author  : Weiqiang.long
# @Site    :
# @File    : get_disparate_env_data.py
# @Software: PyCharm

from util.readTxt import OperationIni

opera = OperationIni(fileName='config.ini', pathName='config')


def get_env_access_token(env, pid):
    '''
    通过不同的env来获取不同的access_token
    :param env: 环境
    :param pid: 商家id
    :return: 返回不同环境的access_token
    '''

    if pid == None:
        if env == 'QA':
            pid = 1
        if env == 'DEV':
            pid = 17
        # TODO 预留prod环境
        if env == 'PROD':
            pid = 17

    access_token = None