问答 求助:RestAssured 接口测试 POST 接口(既包含 param 又包含 body)提示错误 java.lang.IllegalStateException: You can either send form parameters OR body content in POST, not both!

yoyolili · 2021年07月03日 · 最后由 yoyolili 回复于 2021年07月05日 · 4259 次阅读

关键代码:
RequestSpecification rs = given();
rs = rs.params(paramsMap);
rs = rs.body(bodyMap);
Response result = rs.when().post(path);
请问哪位大佬能帮忙给出一下解决方案呢?

共收到 12 条回复 时间 点赞

params body 只能任选一个

。。。

cheunghr 回复

嗯,我查阅的资料和这个提示确实都是这样
但是从后台接口以及接口上都是接受了 param 和 body
这样的有办法解决吗

你所指的 param 是指 url 的?之后的参数么

如果是的话,你应该用的方法应该是这个 requestSpecification.queryParam

楼上正解,params 改成 queryParams

使用 queryParams 确实解决了我的问题,谢谢大家
看来我还没有摸清楚 RestAssured 一些基本的使用,继续探索

还这样写接口代码呀,给你安利一个 Rest-Assured 的接口自动化框架,很好用哦
https://testerhome.com/topics/11731

空空 回复

多谢安利😀

空空 回复


请问大佬,这种 post 接口中,Array 类型的对象怎么写入呢?
我现在是通过
会提示 这个

yoyolili 回复

json 解析失败,入参格式写错了吧。。。
这样,先把一组键值对参数存到 map 里,再把 map 存到 list 里再 toJSONString
ArrayList details = new ArrayList();
Map map1 = new HashMap<>();
map1.put("id","1");
details.add(map1);

不建议这样处理入参,我的方式是把入参存到数据库,然后对应的接口拿对应的表的入参,如果参数有动态/依赖的,用可变参数符号 ${variableName}代替,接口执行之前构造/替换这个为实际参数

空空 回复

嗯,现在通过获取依赖接口,拿到了动态的 map 数据,之前思路错了
谢谢大佬

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