美文网首页python学习接口测试
python 固定格式 接口参数化测试

python 固定格式 接口参数化测试

作者: freedom_smile | 来源:发表于2020-11-06 18:02 被阅读0次

    接口请求格式为:

    1. 固定url
    2. key:requestJson
      value:{"head ":{固定参数及值},"body":{需要的参数和值}}
      例子:
    {
        "head":{
            "service":"front.a.query",
            "version":"1.0",
            "input_charset":"UTF-8",
            "core_merchant_no":"EW_N2012672000",
            "sign":"dc1337a0c5b6c703a14005a1d30eab8c"
        },
        "body":{
            "channel_type":"WX",
            "out_request_no":"otn20201106173104635106",
            "merchant_no":"EW_N4061492000"
        }
    }
    
    import requests
    from a.utils.md5_python import md5Python as md5
    from a.utils.date_random import get_random_param as get_unique
    from a.log.logger import Logger
    from a.utils.tools import dict_process
    from a.utils.get_excle_path import get_excle_path
    from a.utils.get_excle_data import get_all_excle_data
    from a.utils.tools import del_null
    import json
    
    def front_a_query(excle_file,sheet_name,row):
        # 获取接口的数据
        excle_data = get_all_excle_data(excle_file, sheet_name, row)
        host = excle_data['host']
        params = excle_data['params']
        outTradeNo = get_unique('otn')
    
        head = {
                "service": "front.a.query",
                "version": "1.0",
                "input_charset": "UTF-8",
                "core_merchant_no": params['core_merchant_no']
            }
    
        body = {
                "channel_type": "WX",
                "out_request_no": outTradeNo,
                "merchant_no": params['merchant_no']
            }
       # 非必填的参数没有值,请求信息就去掉
        body = del_null(body)
    
        requestJson = {
            "head": head,
            "body": body
        }
    
        # 加密串的值
        sign_values = dict_process(requestJson)
    
        # 将按规则生成的sign放在请求的head里面
        requestJson["head"]['sign'] = md5.md5_sign_pc(sign_values, params['key'])
    
        # 请求信息为json格式
        params = {
            "requestJson": json.dumps(requestJson)
        }
    
        # 接口请求
        r = requests.post(host, data=params)
    
        # 返回接口的请求和返回信息
        result = {
            'req': requestJson,
            'res': r.json(),
            'url': host
        }
        return result
    
    if __name__ == '__main__':
        log = Logger("info")
        excle_file = get_excle_path()
        sheet_name = 'front'
        row = 1
    
        result = front_a_query(excle_file,sheet_name,row)
        log.info("请求地址:" + result['url'])
        log.info("请求信息:" + str(json.dumps(result['req'], ensure_ascii=False)))
        log.info("返回信息:" + str(json.dumps(result['res'], ensure_ascii=False)))
        print("商户配置信息:" + str(result['res']['body']['wx_configure_info']))
    
    

    相关文章

      网友评论

        本文标题:python 固定格式 接口参数化测试

        本文链接:https://www.haomeiwen.com/subject/ydztbktx.html