RobotFramework,发起接口请求时,遇到的坑和问题总结

最近在用RobotFramework,做接口自动化时,发现对接口请求的报文,兼容性较差,同样的报文在jmeter下可以运行,在RobotFramework就是会出现400 bad quest,和之前的写的文章一样,一旦发现data请求时,后面被加上了"(双引号),一定是自己的问题

1、发起的报文带有\n(换行符)的请求报文;发现怎么请求都是400bad quest,加上由于发起接口本身(原接口有bug)又返回success,但是尝试打印responset.text,又一直是空白。尝试在python下发起同样的请求,content和text也一直是空白,后面妥协,把\n(换行符)换成w分号后,请求成功。content和text也能正常返回

2、发起的报文,存在多个",是jmeter下也是能正常运行,后面仔细检查才发现是自己的问题

3、使用RF时,经常会从上一个请求获取某个节点的值时,实际的结果是带有前后引号的,这导致发送下一接口如果有使用该值,会出现一直请求不成功,要仔细仔细仔细的检查请求的参数,若存在带引号的情况下,可以使用.strip()来处理,代码如下:

${keyId}    Get Json Value    ${response_data}    /keyId
${keyId}    Evaluate    ${keyId.strip()}    

4、发送含有带文件上传的接口,在发送接口请求前,记得要用字典,且用files=来设置,之前直接放某个参数时,会出现 ValueError: too many values to unpack

设置结果如下

之前不行报错的时候,是files= ${file}

5、 当Content-Type=multipart/form-data,如果是form-data,Content-Type一定不能加,Jmeter和RF都不行,切记,否则会一直是400 Bad Request

#Content-Type=multipart/form-data,如果是form-data,Content-Type一定不能加,jmeter和RF都不行,切记

6、RobotFramework当判断一个变量是否为null时,判断方法用'${name}'=='None'

Run Keyword If	'${name}'=='None'	QueryStatus

7、RobotFramework调用某个关键时,当需要传参为空时,不能直接放空,需要传{EMPTY},例如

Config	${Empty}

综上,只能说jmeter的兼容性高于python.这里写的希望有和我一样遇到坑的人,提供一个方法,最主要的还是data=后面如果是“开头的,一定是自己的问题,别的工具可以,只能说别的工具兼容性比较好,另外也欢迎有遇到过这样的问题,如果\n 在python下发送过可以的高手,也麻烦指导下如何处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chjuan1122

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值