python 按行取excle数据作为接口请求数据
作者:互联网
1、excle文件内容示例:
获取excle数据源码:
1 import pandas as pd 2 3 def get_all_excle_data(excle_file, sheet_name, row): 4 #固定excle某列字段的数据类型,防止excle整数变为浮点数 5 converters = { 6 'employeeId':str, 7 'authCode':str, 8 'orderSource':str 9 } 10 # 将excle的数据提取出来 11 data = pd.DataFrame(pd.read_excel(excle_file, sheet_name=sheet_name, converters = converters ,na_values='NULL',)) 12 13 # 将excle里面单元格值为空的值都替换为NULL 14 data = data.fillna('') 15 # excle所有列名字 16 all_para_col = list(set(data)) 17 18 #生成请求字典信息 19 params = {} 20 for v in all_para_col: 21 params[v] = data.loc[row,v] 22 23 # 请求地址 和 key 24 url = data.loc[row, 'host'] + data.loc[row, 'path'] 25 key = data.loc[row, 'key'] # key的值 26 27 result = { 28 'testCases': data.loc[row,'testCases'], 29 'host': data.loc[row,'host'], 30 'row': data.loc[row,'row'], 31 'params': params, 32 } 33 return result
订单查询接口用excle的数据作为请求数据:
1 import requests 2 from A_shop.utils.get_excle_data import get_all_excle_data 3 from A_shop.utils.md5_python import md5Python as md5 4 from A_shop.utils.date_random import get_random 5 from A_shop.utils.tools import del_null 6 from A_shop.log.logger import Logger 7 from A_shop.utils.get_excle_path import get_excle_path 8 import json 9 10 def pi_query(excle_file,sheet_name,row): 11 # 获取接口的数据 12 excle_data = get_all_excle_data(excle_file, sheet_name, row) 13 url = excle_data['host'] + "/open/pay/query" 14 key = excle_data['key'] 15 params = excle_data['params'] 16 random = get_random() 17 18 params = { 19 "appId" : params['appId'], 20 "merchantCode" : params['merchantCode'], 21 "random" : random, 22 "outTradeNo" : params['outTradeNo'] 23 } 24 25 params = del_null(params) 26 params["sign"] = md5.md5_sign(params, key) 27 28 # 接口请求 29 r = requests.post(url, data=params) 30 31 # 返回接口的请求和返回信息 32 result = { 33 'req': params, 34 'res': r.json(), 35 'url': url 36 } 37 return result 38 39 if __name__ == '__main__': 40 log = Logger("info") 41 excle_file = get_excle_path('refund_data.xlsx') 42 sheet_name = 'pi_test' 43 44 for row in range(3): 45 result = pi_query(excle_file, sheet_name, row) 46 log.info("支付查询请求地址:" + result['url']) 47 log.info("支付查询请求信息:" + str(json.dumps(result['req'], ensure_ascii=False))) 48 log.info("支付查询返回信息:" + str(json.dumps(result['res'], ensure_ascii=False))) 49 print(result['res']["msg"]) 50 assert result['res']['code'] == "SUCCESS" 51 assert result['res']['msg'] == "订单已支付"
这样做到数据源与源码分开管理,一套代码,只用改excle的请求数据就可以测试不同的场景
标签:get,python,按行取,params,result,excle,data,row 来源: https://www.cnblogs.com/shuang168999/p/13914875.html