【问题标题】:How to Execute python scripts in robot framework如何在机器人框架中执行 python 脚本
【发布时间】:2016-08-09 23:56:43
【问题描述】:

我们已经使用 python 脚本实现了自动化场景 (.py)。我们想在 Robot Framework 中执行这些脚本。是否有任何选项可以在 RF 中执行 Python 脚本。

谁能给我推荐一下。

【问题讨论】:

  • 这些脚本是您正在测试的,还是您想将脚本中的函数用作关键字,或者您只是想执行脚本并捕获标准输出?
  • 我正在尝试在机器人中执行 Python 脚本并捕获标准输出。你能帮帮我吗?

标签: robotframework


【解决方案1】:

您可以使用process library 中的run_process 关键字。它返回一个具有状态码、stdout 和 stderr 的对象。

例如,这会运行脚本 /tmp/helloworld.py:

# example.robot
*** Settings ***
| Library | Process

*** Test Cases ***
| Example of running a python script
| | ${result}= | run process | python | /tmp/helloworld.py
| | Should be equal as integers | ${result.rc} | 0
| | Should be equal as strings  | ${result.stdout} | hello, world

【讨论】:

  • 感谢您的回复!我在 C:\Python27\Lib\Hello.py 有 python 文件,打印“Hello world!”。这是编写机器人文件执行的正确方法吗 *** 设置 *** 库进程 *** 变量 *** ${stdout} *** 测试用例 *** test1 ${result}= run process python C: \Python27\Lib\Hello.py 应该相等 ${stdout} ${result.stdout} 你好 python!这里测试用例通过了,但结果与我的 python 文件不匹配,因为 python 文件(C:\Python27\Lib\Hello.py)应该返回“Hello world!”
  • 请您验证一下脚本。
  • @KrantiKumar:我不明白你的意思。本文中的机器人测试有效,假设实际上有一个名为“/tmp/helloworld.py”的文件,并且实际上在标准输出上打印了“hello, world”。
  • 当我在上面运行提供的脚本时,测试用例因 test2 失败!= 你好 python!这里的测试结果应该与 E:\Python_practice\Hello.py 的输出结果匹配,并给出“应该等于 ${result.stdout} Hello python!”如果我错了请指导我
  • @KrantiKumar:显然,您的脚本正在打印“test2”,所以它当然会失败,因为测试希望它打印“hello world”
猜你喜欢
  • 2016-07-29
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 2017-11-22
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 2019-01-14
相关资源
最近更新 更多