背景概述:
需要对一个平台公共接口进行测试,要求1动态参数2上传文件,使用python进行接口测试,模拟接口对接情况(老板不认可工具,必须按照实际对接的方式进行)直接使用代码访问
话不多说直接上代码,注释没有去掉,算法简单明了
#python 进行动态参数下post接口访问
import hashlib
import time
import requests
#MD5加密和参数计算算法
t=time.time()
account="L71BSJQK" #固定参数
key="0bb73a96-5478-4d4e-9933-6684895caae0" #固定参数
timestamp=int(t)#动态参数
secret="e17553a1-dfa3-4159-b42c-146aa16fe43c" #固定参数
sign1 =("ASR"+str(account)+"@"+str(key)+"@"+str(timestamp)+"&"+str(secret)) #md5加密 动态验证
print(timestamp)#输出int类型时间戳 接口访问需要--同时使用postman进行验证 需要输入参数 打印一下
def md5(key):
a = hashlib.md5()
a.update(key.encode("utf-8"))
return(a.hexdigest())#使用方法def后接print 不能输出值
A=md5(sign1)
print(A)
#输出计算结果
#post请求
url ="http://36.154.171.230:8000/api/v1/asr/recognition"
querystring = {"account":"L71BSJQK","appkey":"0bb73a96-5478-4d4e-9933-6684895caae0","ts":str(timestamp),"sign":str(A)}
file = {"file":(open("D:\python3.7\music\shenyang47.wav","rb"))}#二进制文件路径打开上传
response = requests.request("POST", url,params=querystring,files=file)
print(response.text)
编写过程偷懒,请求代码是生成的,后经改动符合要求!