Ready API测试REST API multipart多附件数据异常问题
嘿,我太懂你现在的糟心感受了——明明只在请求参数里指定了要发送一张图片,结果Ready API愣是把测试套件Attachments标签里加的所有附件都塞进了请求里,直接触发了对方API的文件大小超限错误。别慌,咱们来一步步把这个问题搞定:
别在测试套件层级的Attachments里批量加文件
你现在把所有图片都放在了测试套件的Attachments标签下,这个层级的附件会被自动应用到套件下的所有请求里,不管你在单个请求的参数里怎么指定,多余的文件都会被带上。所以第一步先把测试套件Attachments里不需要的文件删掉,或者干脆不在这个层级添加任何文件。在单个REST请求的参数里精准关联文件
打开你要测试的那个POST请求,切换到Parameters标签,找到对应的multipart参数(比如命名为file的参数),在参数的Value列选择File类型,然后直接选中你要发送的那张图片。这样配置后,请求只会携带这一个指定的文件,不会夹带其他附件。检查请求的Multipart配置细节
确认你的请求Media Type设置为multipart/form-data,并且在Parameters标签里只保留了需要发送的那个文件参数,没有额外的自动附加项。配置完后切换到RAW标签预览请求内容,确认只有你指定的那一个文件的multipart分段。动态选文件?用脚本精准控制
要是你需要在不同测试用例里发送不同的文件,别再手动在套件Attachments里堆文件了,试试用Groovy脚本动态控制:
在目标请求的Script标签里添加这段代码:// 先清除请求中所有已有的附件 testRequest.getRequestContent().removeAllAttachments() // 添加你需要发送的单个文件,替换成你的文件路径 def targetFile = new File("C:/your/image/path/photo.jpg") testRequest.getRequestContent().addAttachment(targetFile.getName(), "image/jpeg", targetFile)这样每次请求都会只发送你指定的那一个文件,完全不会有多余的附件混进来。
调整完之后再发送一次请求,看看RAW标签里的请求内容,确认只有你需要的那个文件,这样就不会触发对方的文件大小限制啦。
内容的提问来源于stack exchange,提问作者Gaurav Sharma

