今天碰到一个超级诡异的问题:先用postman调通了接口,然后使用RF进行自动化。
因为接口参数比较长(后来发现就是参数太长没仔细看导致的问题!),所以就直接复制了postman中调试使用的参数,到RF中进行请求。
参数是json格式的,因此在RF中使用语句进行设置:
{data} Set Variable {"v":"1.0",...,xxxxxx} 具体json值就不贴了,反正实际请求 的时候json里面有几十个k-v对。 然后使用{data}在请求接口时作为参数。
诡异的事情出现了,一直得不到正确的返回值,接口返回的提示是参数语法错误。
查看log发现,错误出现在请求的时候对"进行了转义,所以我的参数全都变成了这样的:
data="{"v":"1.0",...,xxxxx}
本来以为是中文符号的问题,那简单嘛,一键替换,参数拷出来放到文本编辑器里面,什么双引号,冒号,逗号,全都替换一遍。
再请求,还是有错误。
这不科学啊?难道是替换的时候出现了什么诡异的问题,导致我输入的字符有问题?
嘛,那就用笨方法,把隔壁可以成功跑通的case,参数拿过来,使用隔壁case中的{"":"","":""}符号,贴上出错case的参数好了。。(但是几十个参数实在懒得写,事已至此只能不懒了!)
于是在json格式的这个大框架{"":"","":""}下,一个一个的复制粘贴我需要的参数。
等到复制最后几个参数的时候,我恍然大悟了!有一个参数,key居然少了双引号……
坑爹啊,就是少的这个双引号害我排查了小半天。。。果然不能犯懒啊,话说postman里面能够请求成功,可能是对双引号没有那么严格的要求,RF估计就不一样了。。。
结论:当参数很多很多的时候,一定要用json格式检查工具,去检查一下你的json格式对不对啊!不要像我一样走了那么多弯路!