案例1:在上传其他参数正确的前提下,多次回放,无法将包上传成功,通过与开发协同定位,发现上传路径存在问题,经过多次论证,需将本地路径"D:\web.zip"正则表达式转为“D:\\web.zip”,才能上传成功
web_submit_data("SaveStudentFile",
"Action=http://{IP}/UploadFile/SaveStudentFile",
"Method=POST",
"EncType=multipart/form-data",
"RecContentType=application/json",
"Snapshot=t87.inf",
"Mode=HTML",
ITEMDATA,
"Name=Filename", "Value=web.zip", ENDITEM,
"Name=UserID", "Value=5", ENDITEM,
"Name=examID", "Value=44", ENDITEM,
"Name=size", "Value=6169016", ENDITEM,
"Name=questionID", "Value=56", ENDITEM,
"Name=name", "Value=B71B3A333F32B7E741D6EBAA109527EE.zip", ENDITEM,
"Name=fileName", "Value=web.zip", ENDITEM,
"Name=type", "Value=.zip", ENDITEM,
"Name=UserName", "Value=student", ENDITEM,
"Name=isUpload", "Value=0", ENDITEM,
"Name=fileTypes", "Value=*.rar;*.zip", ENDITEM,
"Name=post", "Value=[object Object]", ENDITEM,
"Name=ExamName", "Value=上传脚本录制01081120", ENDITEM,
"Name=creationdate", "Value=Mon Jan 6 16:20:21 GMT+0800 2014", ENDITEM,
"Name=fileSizeLimit", "Value=20971520", ENDITEM,
"Name=id", "Value=B71B3A333F32B7E741D6EBAA109527EE", ENDITEM,
"Name=modificationdate", "Value=Mon Jan 6 16:10:10 GMT+0800 2014", ENDITEM,
"Name=filestatus", "Value=6", ENDITEM,
"Name=FileData", "Value=D:\\web.zip", "File=Yes", ENDITEM,
"Name=Upload", "Value=Submit Query", ENDITEM,
LAST);
案例2:此案例是有同事提供,解决问题思路,1:包头问题,通过工具抓包即可解决;2:上传文件问题,录制过程中将上传文件的数据流保存在lrw_custom_body.h文件body_variable_1参数中,故不方便更换其他上传文件,因此将上传文件路径更替即可(注:上传文件的绝对路径需正则表达式转换方可使用,否则无法上传,比如:"D:\1045.pdf"转为"D:\\1045.pdf")。
/*工具抓出上传附件请求的包头,如下:
Content-Type: application/octet-stream
gtaFileName: 1045.pdf
uploadID: 723cbafc-8d75-4419-8218-e9161f2f05b0
isBigFile: false
Content-Length: 4771364
Connection: Keep-Alive
Accept-Encoding: gzip
Accept-Language: zh-CN,en,*
User-Agent: Mozilla/5.0
Host: 192.168.102.43:8003
*/
web_add_header("Content-Type","application/octet-stream");
web_add_header("gtaFileName","1045.pdf");
web_add_header("isBigFile","false");
web_add_header("Content-Length","4771364");
web_add_header("uploadID","{uploadID}");
web_revert_auto_header("X-Requested-With");
web_custom_request("UploadFileSave",
"URL=http://{IP}/ResUploadManage/UploadFileSave?"
"FileUrl=D:/upload/1045.pdf&"
"ResName=1045&"
"fileSize=4771364&"
"token={token}&"
"userId={user}&"
"userName={user}&"
"ResMark=1045&"
"Ressclassify=4&"
"ResType=3&"
"ResKey=1045&"
"Author=&"
"AuthorUnit=&"
"CopyRight=&"
"EduLevel=0&"
"SuitTarget=&"
"ResLanguage=0&"
"Other=&"
"gtaFileName=1045.pdf",
"Method=POST",
"Resource=0",
"Referer=",
"Mode=HTTP",
"EncType=application/octet-stream",
"BodyFilePath=D:\\1045.pdf",
//body_variable_1,
LAST);
备注:在发现脚本存在问题的时候,不仅要善于度娘,还得寻求周围同事(比如:开发人员、性能测试高手、架构师、网络部等)力量去解决,不能固步自封、墨守陈规。