美文网首页
2018-07-09 借助Postman使用python测试接口

2018-07-09 借助Postman使用python测试接口

作者: 阿康666666 | 来源:发表于2018-07-09 21:34 被阅读75次

postman是个很好的接口测试工具,可以很方便的调试接口。相关Postman使用可参考: postman接口测试系列:基本操作总结

不过在面对复杂的一些接口时,需要手动写代码实现一些功能,在postman工具内似乎有些麻烦。

举个例子,某个接口请求中,需要获取实时的时间戳,并进行签名,如果只是调用一次那么可以手动分别计算一下并填入请求参数中。如果需要不断调试,那么就需要动态获取和计算这些参数了。

网上也有一些相关的Postman工具自动获取时间戳和签名的方法:Postman接口测试系列:时间戳和加密

不过看起来不是很好调试,看来还需要想想更好的方法。

摸索一会后,发现在postman是可以根据当前的请求信息,自动生成不同平台的代码的。


image.png

那么就用目前火热的python来试一下效果吧。

首先,需要在postman手动调用一次接口,以此来生成python代码,如下图所示。


image.png

有了这个模板以后,那么就可以直接在python在实现这个接口请求,并使用参数化的方式替换掉模板中时间戳与对应签名值了。

直接上代码

import http.client
import time
import hashlib

req_id='1'
username='kim666'
tel='13899999999'

#获取当前时间戳
t=time.time()
timestamp=int(round(1000*t))
print(timestamp)

#MD5签名值
toSign=req_id+str(timestamp)+username+tel
print(toSign)
m=hashlib.md5()
m.update(toSign.encode('UTF-8'))
sign=m.hexdigest()
print(sign)

#f演示地址,实际需替换真实地址
conn = http.client.HTTPConnection("api.test.com:8080")

payload = ('req_id={0}&timestamp={1}&username={2}&tel={3}&sign={4}').format(req_id,timestamp,username,tel,sign)
print(payload)
headers = {
    'content-type': "application/x-www-form-urlencoded",
    'cache-control': "no-cache",
    'postman-token': "5306728e-9e65-ef5a-1448-930cb10f0b78"
    }
conn.request("POST", "/login", payload, headers)
res = conn.getresponse()
data = res.read()

#打印响应结果
print(data.decode("utf-8"))

执行完成后即可查看请求的响应结果,再也不需要重复计算Md5和时间戳了。


2018-07-09 借助Postman使用python测试接口功能

相关文章

网友评论

      本文标题:2018-07-09 借助Postman使用python测试接口

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