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

如何在LoadRunner中更新现有CSV文件的指定列数据后执行上传

LoadRunner多迭代上传唯一CSV文件实现方案

实现逻辑

每次迭代启动时,动态生成带唯一ID的CSV临时文件,再调用上传接口传递该临时文件,从根源避免内容重复导致的报错。

具体操作步骤

1. 动态生成唯一ID与临时CSV文件

将以下代码放在Action模块的最开头,每次迭代执行上传操作前先运行这段逻辑:

long file_handler;
char csv_path[256];
int base_id, row1_id, row2_id;

// 生成唯一ID基准:组合虚拟用户ID+迭代号,单/多用户场景都不会重复
base_id = lr_whoami(VUSER_ID) * 1000 + atoi(lr_eval_string("{Iteration}")) * 10;
row1_id = base_id + 1;
row2_id = base_id + 2;

// 定义临时CSV存储路径,也可以每次迭代生成不同文件名
sprintf(csv_path, "C:\\loadrunner_temp\\upload_data.csv");

// 写入CSV内容
if((file_handler = fopen(csv_path, "w")) == NULL) {
    lr_error_message("临时CSV文件创建失败,路径:%s", csv_path);
    return -1;
}
fprintf(file_handler, "ID,Name,Department\n");
fprintf(file_handler, "%d,Mohd Sarfraz,CS\n", row1_id);
fprintf(file_handler, "%d,Mohd Sarfraz,CS\n", row2_id);
fclose(file_handler);

// 存储文件路径为参数,供上传接口调用
lr_save_string(csv_path, "upload_csv_path");

若CSV行数多、结构复杂,可提前准备占位符模板文件,逐行读取替换ID占位符后写入临时文件,逻辑与上述写入逻辑一致。

2. 修改上传请求的文件路径

找到脚本中文件上传的请求(通常为web_submit_data、web_custom_request函数),将原固定CSV路径替换为上述生成的参数{upload_csv_path},示例如下:

web_submit_data("csv_upload",
    "Action=https://你的测试接口地址/upload",
    "Method=POST",
    "EncType=multipart/form-data",
    ITEMDATA,
    "Name=file", "Value={upload_csv_path}", "File=Yes", ENDITEM,
    LAST);

3. 可选优化

迭代结束后添加删除临时文件的逻辑,避免本地生成过多冗余文件:

remove(lr_eval_string("{upload_csv_path}"));

如果你的脚本没有内置的迭代号参数,可以自定义一个全局变量,每次迭代结束后自增1即可替代上述的{Iteration}参数。

内容的提问来源于stack exchange,提问作者Mohd Sarfraz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:09:00