在我的机器人框架测试中,我正在运行一个创建测试数据的 Python 脚本。 要启动脚本,有 2 个选项: 在 PowerShell 中我可以输入:
python testdatascript.py ABC TEST
或者
python testdatascript.py
-> 脚本运行并要求输入 -> ABC
-> 下一个输入 TEST
其中“ABC”=源数据库,“TEST”=环境
我认为我当前的代码没有“等待”完成生成,因为当我在 PowerShell 中手动运行它时,在完成脚本之前可能需要 20 秒 - 1 分钟才能生成所有测试数据。在 Robot Framework 中,它会在 1-2 秒内完成(无需使用测试数据创建文件)
Python 脚本运行良好,手动使用时完美无缺。
目前我有这个:
${RESULT}= Run Process Python c:/path/testdatascript.py ABC TEST shell=yes stdout=stdout.txt
它当前返回
<result object with rc 0>
(如果我是正确的,则为0个错误),但不创建测试数据。
如果脚本运行成功,它将打印:
successfully created the testdata
如果失败,它将打印错误代码。
我开始研究 Start Process
,但我在机器人框架方面没有足够的经验,不知道它是如何工作的。
完美的解决方案如果运行/启动进程启动 .py 脚本并在继续测试之前检查是否显示成功行。
Run Process
关键字返回一个结果对象,该对象记录在此处; https://robotframework.org/robotframework/latest/libraries/Process.html#Result%20object
在此对象上,它具有名为 rc 的属性,它是您运行的进程的返回代码。可以从属性 stdout 和 stderr 读取进程的输出。请阅读文档,在某些情况下,您可能需要将输出重定向到文件以避免挂起。查看您的示例,您已经将标准输出传递给
Run Process
,因此可以从 stdout_path 属性中指出的文件中读取输出。
如果脚本在从机器人框架执行时未按预期工作但是它仍然返回 0 作为退出代码,我认为脚本本身有一些问题。