robotframework-接口测试详解(上传文件)

接上篇文章,写下接口需要上传附件要怎么做,直接先上代码,下面再详细解释
header里面不要加:Content-Type=multipart/form-data !!!

    ${data}    Get From Dictionary    ${content}    data    #获取data信息
    ${tokenId}    Get From Dictionary    ${data}    tokenId    #tokenId
    ${file1}    Evaluate    (r'a.xlsx', open(r'D:/d.xlsx', 'rb'),'excel/xlsx')
    &{files}    Create Dictionary    file=${file1}
    log    ${files}
    &{datas}    Create Dictionary    tokenId=${tokenId}
    Create Session    API    ${HOST}
    ${res}    Post Request    API    /file/v2/upload-file    data=${datas}    files=${files}
    Comment    log    ${res.text}

如上面的代码,主要是

 ${file1}    Evaluate    (r'a.xlsx', open(r'D:/orsd.xlsx', 'rb'),'excel/xlsx')

python官方推荐的格式

{ 
 "field1" : ("filename1", open("filePath1", "rb")), 
 "field2" : ("filename2", open("filePath2", "rb"), "image/jpeg"), 
 "field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"}) 
}

这个字典的key就是发送post请求时的字段名, 而字典的value则描述了准备发送的文件的信息;从上面可以看出value可以是2元组,3元组或4元组;

这个元组的每一个字段代表的意思一次为:

("filename", "fileobject", "content-type", "headers")

缺省的话就使用默认值,同时request还支持一种简单的格式

{ 
 "field1" : open("filePath1", "rb")), 
 "field2" : open("filePath2", "rb")), 
 "field3" : open("filePath3", "rb")) 
}

上面的亦可写成

 ${file1}    Evaluate    (open(r'D:/ProgramData/workhome/rf-workhome/lllll/orsd.xlsx', 'rb'))

版权声明:本文为huashao0602原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。