You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LoadRunner调用REST API上传文件异常:仅能上传16字节文件

解决LoadRunner调用REST API上传文件仅传16字节的问题

嘿,我之前帮同事解决过一模一样的问题!你现在遇到的情况是因为LoadRunner的web_rest调用里,文件上传的参数写法错了——你用Value来指定文件路径,这相当于把C://PerfDoc2.doc这个字符串直接传去服务器了,长度刚好就是16字节左右,自然不是你要上传的20MB文件。Postman会自动帮你处理文件上传的multipart/form-data格式,但LoadRunner得明确告诉它“这是一个文件,要读取内容上传”。

核心修正方案

把attachment字段的Value参数换成File,同时加上匹配文件类型的ContentType,这样LoadRunner才会读取文件实际内容并上传。

修正后的代码

web_rest("UPLOAD", 
    "URL={URL}", 
    "Method=POST", 
    "EncType=multipart/form-data", 
    "Snapshot=t2.inf", 
    ITEMDATA, 
        "Name=EmployeeId", "Value={EmployeeId}", ENDITEM, 
        "Name=ComponentId", "Value={ComponentId}", ENDITEM, 
        "Name=entityId", "Value={entityid}", ENDITEM, 
        "Name=CategoryId", "Value={CategoryId}", ENDITEM, 
        "Name=tagId", "Value={tagid}", ENDITEM, 
        "Name=fileName", "Value=abc.doc", ENDITEM, 
        // 关键修改:用File指定文件路径,添加ContentType匹配文件类型
        "Name=attachment", "File=C://PerfDoc2.doc", "ContentType=application/msword", ENDITEM, 
    HEADERS, 
        "Name=CSRF_TOK", "Value={CSRF_TOK}", ENDHEADER, 
        "Name=X-REST-API", "Value=true", ENDHEADER, 
        "Name=X-Requested-With", "Value=XMLHttpRequest", ENDHEADER, 
LAST);

额外注意事项

  • 文件路径验证:确保LoadRunner运行的机器能访问到C://PerfDoc2.doc,如果是用远程负载生成器,要把文件放到对应机器上,或者使用共享网络路径。
  • ContentType匹配:如果上传的是docx文件,要把ContentType改成application/vnd.openxmlformats-officedocument.wordprocessingml.document,避免服务端解析文件失败。
  • Snapshot检查:如果t2.inf是录制生成的快照文件,可能需要手动更新它确保multipart的边界等参数正确;要是不需要依赖快照,也可以直接去掉Snapshot=t2.inf这一行。

备选方案:用web_custom_request手动控制请求

如果web_rest还是有问题,可以试试web_custom_request,手动拼接multipart请求体,用Binary参数指定文件内容,这种方式更灵活:

web_custom_request("UPLOAD",
    "URL={URL}",
    "Method=POST",
    "EncType=multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
    "Body=------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"EmployeeId\"\r\n\r\n{EmployeeId}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"ComponentId\"\r\n\r\n{ComponentId}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"attachment\"; filename=\"PerfDoc2.doc\"\r\nContent-Type: application/msword\r\n\r\n",
    "Binary= C://PerfDoc2.doc",
    "Body=------WebKitFormBoundary7MA4YWxkTrZu0gW--\r\n",
    HEADERS,
        "Name=CSRF_TOK", "Value={CSRF_TOK}", ENDHEADER,
        "Name=X-REST-API", "Value=true", ENDHEADER,
        "Name=X-Requested-With", "Value=XMLHttpRequest", ENDHEADER,
LAST);

内容的提问来源于stack exchange,提问作者Reetika Nijhawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 09:12:29