新手区 请教一下,python3 接口测试中使用 requests 进行 post 请求时,参数类型为 string,该怎么传递?

119 · 2018年08月14日 · 最后由 119 回复于 2018年08月15日 · 4474 次阅读

如题,最近在学习用 python 进行接口测试,利用 requests+unittest 的方式直接写 case,两个问题:
1.post 请求,参数是 string:
写成 json 传递过去,返回 “{"message":"Not Found"}”,
写成 string 传递过去,返回 “{invalid JSON, only supports object and array}”
期望应该是返回{ "status": 0, "message": "", "success": true}
这个该怎么写呢?还有一种类型是 long 的怎么写呢?

2.get 请求,传递参数过去,返回一堆无用数据:如图

期望应该返回的是有序的 json 格式的,如图

哪位大神帮我看看吧,百度好久,没找到解决办法,谢谢了!!!

共收到 5 条回复 时间 点赞

我猜你说的参数是 query string 吧 (这个样子的 /xxx?name=Michael),如果是这样的话请用
requests.post(url='xxxxx.com', params={'name': 'Michael'})

119 #2 · 2018年08月14日 Author
chen 回复

好的,明儿到公司试试。谢谢哈

你对 requests 的了解有点少,多看看例子,百度不到,有可能是你问的不是根本问题。你问 “requests post 请求怎么发”,比问 “为啥返回的是 not found”,会更有效。

附上 requests 的 doc,看完这个的 50%,能解决 90% 的问题 http://cn.python-requests.org/zh_CN/latest/index.html

同一个接口, post 和 get 得到的结果不一定是相同的(看接口具体的实现,有些接口, get 是返回 html 页面, post 是返回 json 结果), 所以要了解你测试的接口需要使用哪种方式。

119 关闭了讨论 08月15日 14:25
119 重新开启了讨论 08月15日 14:26
119 #7 · 2018年08月15日 Author

问题已解决:
1.接口文档里面的地址给的不全,url 里面少写了一个 API,所以连接不上。修改地址后,问题已解决
谢谢大家的答案,谢谢了!

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