在Robot Framework中运行Python脚本并等待其完成

问题描述 投票:0回答:1

在我的机器人框架测试中,我正在运行一个创建测试数据的 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 脚本并在继续测试之前检查是否显示成功行。

robotframework
1个回答
0
投票

Run Process
关键字返回一个结果对象,该对象记录在此处; https://robotframework.org/robotframework/latest/libraries/Process.html#Result%20object

在此对象上,它具有名为 rc 的属性,它是您运行的进程的返回代码。可以从属性 stdoutstderr 读取进程的输出。请阅读文档,在某些情况下,您可能需要将输出重定向到文件以避免挂起。查看您的示例,您已经将标准输出传递给

Run Process
,因此可以从 stdout_path 属性中指出的文件中读取输出。

如果脚本在从机器人框架执行时未按预期工作但是它仍然返回 0 作为退出代码,我认为脚本本身有一些问题。

© www.soinside.com 2019 - 2024. All rights reserved.