ALM中使用VAPI-XP脚本上传附件失败问题求助
解决VAPI-XP脚本上传ALM附件失败的问题
我看你在尝试用VAPI-XP脚本自动把测试实验室里最新的Excel文件上传到ALM的当前运行记录,但附件始终没成功上传。先把你的代码贴出来方便咱们一起排查:
Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder("D:\Services\2017\Test\New folder") Set recentFile = Nothing For Each file in folder.Files If UCase(fso.GetExtensionName(file.name)) = "XLS" Then If (recentFile is Nothing) Then Set recentFile = file ElseIf (file.DateLastModified > recentFile.DateLastModified) Then Set recentFile = file End If End If Next TDHelper.UploadAttachment "D:\Services\2017\Test\New folder" & "\" & recentFile.name, CurrentRun
接下来咱们一步步拆解可能的问题点,逐个验证:
1. 先确认recentFile是否真的获取到了目标文件
如果你的目标文件夹里没有XLS文件,recentFile会保持Nothing状态,这时候手动拼接路径会直接报错,导致上传终止。可以在循环结束后加一段调试代码验证:
If recentFile Is Nothing Then MsgBox "文件夹里没找到XLS格式的文件!" Exit Sub End If MsgBox "找到最新文件:" & recentFile.Path
2. 替换手动拼接路径的方式,避免路径错误
你手动拼接路径的操作可能会出问题——比如如果文件夹路径末尾本来就带反斜杠,会生成D:\Services\2017\Test\New folder\\filename.xls这种重复斜杠的路径(虽然系统大多能兼容,但没必要冒风险)。直接用recentFile.Path获取完整路径更稳妥:
TDHelper.UploadAttachment recentFile.Path, CurrentRun
3. 检查CurrentRun对象是否有效
要保证CurrentRun是一个已正确初始化的ALM测试运行对象。如果脚本不是在测试运行的上下文里执行,或者CurrentRun没有被正确赋值,上传肯定会失败。可以加个简单的检查:
If CurrentRun Is Nothing Then MsgBox "CurrentRun对象未初始化,请确认脚本执行环境!" Exit Sub End If
4. 验证权限与ALM上传限制
- 确保运行脚本的用户有读取目标XLS文件的权限,同时在ALM里拥有对应测试运行的附件上传权限;
- 确认ALM服务器允许上传XLS格式的文件,且文件大小没有超过ALM设置的附件大小上限。
5. 添加错误捕获,定位具体问题
给上传代码加上错误捕获逻辑,能直接拿到失败的具体原因,比瞎猜高效多了:
On Error Resume Next TDHelper.UploadAttachment recentFile.Path, CurrentRun If Err.Number <> 0 Then MsgBox "上传失败:" & Err.Description & "(错误代码:" & Err.Number & ")" Err.Clear End If On Error GoTo 0
把这些检查点逐一过一遍,应该就能找到附件上传失败的根源了。
内容的提问来源于stack exchange,提问作者kiran
相关产品推荐
相关产品推荐

