VuGen脚本回放HTTP 400错误:如何移除上传路径中的盘符(C:、D:)
解决VuGen脚本回放时因路径含盘符冒号导致的HTTP 400错误
当然没问题!这个问题很常见,咱们直接在VuGen脚本里加个字符串处理逻辑就能搞定——把路径里的盘符部分(比如C:\)去掉,只保留后面的路径内容就行。下面给你几种实用的实现方式:
方法1:C语言脚本直接处理字符串
如果你的脚本是基于C语言的,用标准字符串函数就能快速截取目标路径:
// 原录制的带盘符路径 char originalFullPath[] = "C:\\Users\\**********\\Dummypdf.pdf"; char *cleanPath; // 定位到":\"的位置,跳过这两个字符取后面的内容 cleanPath = strstr(originalFullPath, ":\\"); if (cleanPath != NULL) { cleanPath += 2; // 跳过":\" } else { // 异常情况 fallback 到原路径 cleanPath = originalFullPath; } // 替换上传请求里的路径为处理后的cleanPath web_submit_data("upload_action", "Action=http://your-test-env/upload", "Method=POST", "EncType=multipart/form-data", "RecContentType=text/html", "Referer=", "Snapshot=upload_snap.inf", "Mode=HTML", ITEMDATA, "Name=uploadFile", "Value={cleanPath}", "File=Yes", ENDITEM, LAST);
方法2:用VuGen内置函数参数化处理
如果不想写纯C代码,也可以通过参数化结合内置函数实现:
- 把原带盘符的路径存到参数
{OriginalFilePath}里; - 创建新参数
{CleanFilePath},在参数值里用lr_substr截取从第3位开始的内容(因为C:\占3个字符):lr_substr("{OriginalFilePath}", 3, strlen("{OriginalFilePath}") - 3) - 最后在上传请求中替换为
{CleanFilePath}即可。
方法3:录制阶段提前规避
更省心的方式是在录制脚本时就选择不带盘符的路径:比如把测试文件放到某个子目录,直接选择相对路径(比如Users\**********\Dummypdf.pdf),这样录制出来的脚本本身就不会包含盘符,回放时自然不会触发400错误。
修改完脚本后记得先回放验证,确保处理后的路径符合测试环境validFileNamePattern的规则,同时确认文件上传功能能正常完成哦!
内容的提问来源于stack exchange,提问作者Md Golam Mortuza
相关产品推荐
相关产品推荐

