接口测试 request 发送表单时该使用何种数据格式?

狂天 · 2022年04月19日 · 最后由 狂天 回复于 2022年04月20日 · 4159 次阅读

我把接口参数放到 excel 表格里想搞成参数化,如下图:

发送前先在 headers 里也设置表单格式。
headers['Content-Type'] = 'application/x-www-form-urlencoded'
然后执行语句:
result = requests.post(url=url, data=data, headers=headers)
data 就是表格里 post 右侧那一列参数。
请求完后接口报错

推测应该是在发起 request 请求时,参数没传对
通过 charles 查看了一些我的传参:
选择 text 时传参是:

选择 form 时传参是:

然后我用 postman 请求了一下该接口可以请求成功,
通过 charles 查看成功请求的传参是:
text 时传参:

form 时传参:

请教下各位大佬,我该如何将我的数据转换成成功请求时的那样呢?

顺便说下我在从 excel 里获取了参数后先进行了这个处理:
self.data = str(data).encode('utf-8').decode('latin1')
因为我如果不进行这个转换的话,就使用如下语句:
self.data = str(data)
在请求接口时会报 unicode 报错。

最佳回复


看看官方示例

共收到 3 条回复 时间 点赞


看看官方示例

小鹏友 回复

成功了,感谢大佬

顺便说下表格里面的数据是怎么转换成 request.post 中要求的字典的。
我表格里的数据是这样:

将其转换为字典使用的语句是:
self.data = eval(self.data)
但是转换不成功,一番探索后发现将表格中的数据修改成如下格式即可以顺利转换(空白内容也要加引号):

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册