RobotFramework:发现一个大坑,当post接口入参为json时,千万不能用sojson转化后的json串,直接用浏览器粘过来的就行

问题背景:

  和以往一样愉快的进行着自动化测试,突然就不停的提示我,“程序异常”,查看log发现data中的json变为了数组??????

那算了,我不先组装入参数据直接data=json入参吧,what`s up, Fu.......................,查看半天post requests关键字的入参,发现没有问题啊。

重新打开ride吧!

这什么工具啊,这么坑我。

解决:

  回想之前接口测试用例写的多了,这什么鬼啊,会不会是我json串粘贴的有问题,算了直接把F12抓包过来的入参直接传入吧,之前感觉不好看,使用sojson工具json格式化了一下,把我坑的啊。

终于成功了,就这问题,折腾我两天半。

原文地址:https://www.cnblogs.com/gcgc/p/11102319.html

时间: 2024-12-10 06:02:54

RobotFramework:发现一个大坑,当post接口入参为json时,千万不能用sojson转化后的json串,直接用浏览器粘过来的就行的相关文章

Spring AOP 自定义注解获取http接口及WebService接口入参和出参

注解方法实现过程中可以采用如下获取方式:-以下为例  HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 1.定义两个方法注解,分别标记要处理的http接口及Webservice接口: http接口注解 1 2 3 4 5 @Retention(RetentionPolicy.RUNTIME) @Target({ El

接口入参保护的含义

最近学习<阿里巴巴java开发手册> 第七章控制语句中,第6点提到了入参保护,原文如下: 6. [推荐]接口入参保护,这种场景最常见的是用于做批量操作的接口. 工作中很少提到"入参保护"这个词,更多的是"参数校验"的说法:谈下个人对接口入参保护的理解. 1.接口入参保护,"保护"的是服务器,最常见的体现就是入参的范围或者边界:比如,批量操作接口,明确校验入参的请求日期是N天内的记录,或者最大数量限制是1W条: 开发手册中,尤其提到的场

Postman 如何处理上一个接口返回值作为下一个接口入参?

今天做接口测试,有一个接口的参数是一个校验 token,会实时更新,开发提供了一个单独返回实时 token 的接口,所以就需要在功能接口使用时调用 token 接口的返回值,作为功能接口的参数来使用. 网上搜了一下,都没有现成的使用说明,刚才研究出来了,就记录下步骤,方便后面的同学. 如果返回 token 的接口的返回值,是标准的 JSON 格式的话,就很简单的两步就行了. 1.token 接口设置全局变量 第一步就是执行 token 接口,并把接口返回值里面的 token 值,赋值给一个全局变

根据接口入参不同返回不同对象集合的方法

最近要写一个外部调用的webservice接口,入参和出参都是xml格式,根据不同的type查询不同的集合返回,代码如下: 首先配置webservice接口的xml文件 然后写接口类 然后是实现类 实现类中最主要的是根据不同的type查询出结果然后分装成返回xml 封装的返回方法运用了泛型,可以传入不同的对象集合 public <T> String getDetailXml(String retCode,List<T> list){ Document doc=DocumentHel

Swagger入参为List

今天遇到一个奇葩的需求,为了方便,service的一个接口入参是List<Map> repayMoney(List<Map<String,Object>) 那,我为了在controller调用service,入参类型得一致呀, 那么问题来了,controller入参也得是List吧,或者是其他形式的数据,转换为List<Map> 翻遍了整个项目,没看到之前有人swagger的controller里入参是List的,而且查了一下, 用@ApiImplicitPara

命令行通过入参调用jar包

命令行通过入参调用jar包 最近因为项目需要,需要实现一个功能,即定时执行服务器上的一个脚本去对数据库的数据进行业务处理,要操作的数据库有很多种,mysql.db2.oracle.sqlserver等等,但是shell目前我还不熟悉,所以就先用java去实现,打成一个jar包,通过入参即可调用不同的数据库,满足了要求.网上搜了一下,大家多使用了Apache Commons-CLI包进行命令行参数解析,但是说的都不太清楚,我在这里结合自己的实际操作进行总结,希望能够帮助到有需要的朋友. 我这里因为

postman 上一个接口的返回值作为下一个接口的入参

在使用postman做接口测试的时候,在多个接口的测试中,如果需要上一个接口的返回值作为下一个接口的入参,其基本思路是: 1.获取上一个接口的返回值 2.将返回值设置成环境变量或者全局变量 3.设置下一个接口的参数形式 列子: 存在两个接口(设置微信公众号的测试号的菜单栏的接口) 1.第一个接口用户获取access_token.https://api.weixin.qq.com/cgi-bin/token?三个参数如下. 2.第二个接口用户设置菜单栏. 在这两个接口中,我们需要将第一个接口返回的

偶然的错误发现一个bug,引人深思的null

今天测接口的时候 很偶然的发现一个bug,先交代下游戏接口游戏战斗时会发送uid和登录token回去,这时候会返回一个参数叫storykey发送uid,token,返回storykey,战斗结果加上storykey再发回去,这是一次战斗流程,storykey只能被使用一次.然后我写代码的时候不小心多加了个引号,导致uid多了个引号,这样token和uid就对不起来了,服务器提示token错误,然后再发战斗结果和storykey(这个时候为null)回去,竟然返回了正确的战斗结果,更可怕的是,这个

正则表达式提取器--jmeter将上一个请求的结果作为下一个请求的入参

接口测试时需要将不同的接口串联起来,如将登录接口的出参UserStatusToken作为获取客户列表这个接口的入参,这样才能识别你是否是合法的用户. 1.创建一个线程组 选中测试计划-->右键-->添加-->Threads(Users)-->线程组 2.创建一个获取凭证的请求 在刚刚创建的线程组上右键-->添加-->Sampler-->HTTP请求 3.创建后置处理器 选中刚才添加的HTTP请求-->右键-->添加-->后置处理器-->正则