Robot Framework如何获取sh脚本的执行结果?
解决Robot Framework读取Shell脚本执行结果的问题
问题原因
Run Process返回的是ExecutionResult对象,直接打印该对象只会显示<result object with rc X>,而非实际输出内容。- 使用
@{res}列表变量接收Get Process Result的返回值会报错,因为该关键字返回的是单个对象,不是列表类型。
解决方案
方案1:执行时直接捕获输出
在调用Run Process时,通过参数直接将标准输出、标准错误和返回码存入对应变量:
Run Process "../resources/scripts/TEST.sh" shell=yes stdout=${script_stdout} stderr=${script_stderr} rc=${return_code} Log 脚本标准输出: ${script_stdout} Log 脚本标准错误: ${script_stderr} Log 返回码: ${return_code}
方案2:通过对象属性获取输出
先获取ExecutionResult对象,再访问其属性提取内容(注意用标量变量${res}而非列表变量):
${proc_obj} Run Process "../resources/scripts/TEST.sh" shell=yes alias=proc ${res} Get Process Result proc Log 返回码: ${res.rc} Log 标准输出: ${res.stdout} Log 标准错误: ${res.stderr}
额外提示
你的脚本返回码rc=1,说明执行过程可能存在异常。Git Bash中能看到的内容,有可能被输出到了标准错误流,所以建议同时检查${script_stderr}或${res.stderr}的内容。
内容的提问来源于stack exchange,提问作者Regenshirm
相关产品推荐
相关产品推荐

