python 按行取excle資料作為介面請求資料
阿新 • • 發佈:2020-11-02
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'] == "訂單已支付"