一日,在做“上传附件”功能的性能测试时遇到了个大麻烦,折腾了半天,终于明白了这个麻烦的来龙去脉,说给大伙听听,如果有人遇到这个问题解决起来就很easy了。
事情是这样的,我用IE浏览器在录制脚本的时候(工具还是用的HyperPacer),一点上传附件,就报了这个错误,如下图:
手动操作的时候是完全可以的啊,我就想“找不到文件”,肯定不是全局的找了,是有一个查找范围的,try了一下,最后放在了HyperPacer的根目录下(路径E:\HyperPacer-Win64-3.0.1)。以上错误解决了,可是问题又来了,
我一点击“确定”按钮,又出错了,【数据文件导入失败:Null】。这时我发现我所导入的文件路径给我改成了C:\fakepath了,我的文件明明在E:\HyperPacer-Win64-3.0.1下。询问了一下百度,了解到以下信息:
文件路径变为c:\fakepath这个是处于安全性考虑的,比如文件路径会暴露你的用户名或者其他内容,而通过fakepath直接代替了其中的路径名,保护隐私和安全。
解决办法:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。改过之后,脚本录制中的上传附件终于成功了。
脚本调整的时候,这个文件路径是需要参数化的,我的文件在两个请求下出现了(如何进行参数化请参考本人上一篇博文):
针对不同的系统,请求出现的位置可能不同,但是处理方式都是大同小异,将出现的文件名和路径参数化即可。
Tips,另外我发现火狐浏览器在上传文件时,取的是相对路径(即第二张图文件路径的位置只显示了文件名称cszg1.xls),这个在参数化时就比较方便了,只需要替换文件名即可。如果大家在测试上传附件功能的时候,推荐使用火狐浏览器。