如何使用RobotFramework在Python shell中运行Python脚本?
我继承了一个Python自动化框架,其中包含数十个Python脚本,我们希望重用这些脚本,以避免在新的RobotFramework框架中重写它们 我希望运行的主脚本: •打开Python外壳 •发送一些输出 •接受参数(真/假:1/0) •运行脚本的其余部分 这些脚本已添加到我的框架中一个名为“PythonLibraries”的单独文件夹中。当通过终端手动调用时,脚本工作。它们运行、请求参数并继续脚本的其余部分,这样脚本本身就不会出现任何问题 我想要的是使用RobotFramework实现自动化。其思想是将python脚本导入到我的.robot文件中,创建一个关键字来运行脚本并让它接受一个参数,然后将输出保存到一个变量或文件中,以便我可以查看输出的内容 几天来,我一直在努力让这一切顺利进行。我一直在尝试使用“流程”库,但是在线支持/示例很少。当试图运行脚本时,终端挂起,不输出任何内容。所以要么我的剧本错了,要么我做错了什么 下面是我希望运行的python脚本如何使用RobotFramework在Python shell中运行Python脚本?,python,robotframework,Python,Robotframework,我继承了一个Python自动化框架,其中包含数十个Python脚本,我们希望重用这些脚本,以避免在新的RobotFramework框架中重写它们 我希望运行的主脚本: •打开Python外壳 •发送一些输出 •接受参数(真/假:1/0) •运行脚本的其余部分 这些脚本已添加到我的框架中一个名为“PythonLibraries”的单独文件夹中。当通过终端手动调用时,脚本工作。它们运行、请求参数并继续脚本的其余部分,这样脚本本身就不会出现任何问题 我想要的是使用RobotFramework实现自动化
import uuid
import BTR_ble_sim as BTR
from libs.BLE.script_config import read_serial_port_name, ask_for_serial_number
from libs.BLE.host_bgapi_psrecords import delete_all_bonds
DONGLE_SERIAL_PORT = read_serial_port_name()
SERIAL_NUMBER = "BT10" + str(uuid.uuid4().get_hex().upper()[0:3])
print "Device is broadcasting on: " + SERIAL_NUMBER
btr = BTR.GmInterface(DONGLE_SERIAL_PORT,SERIAL_NUMBER)
btr.delete_bonds()
btr.start_comm_with_time_sync()
我是否应该编辑python脚本,使其成为一个接受参数的函数?这样做更有意义吗,还是有更直接的方法?非常感谢您的帮助。正如您所看到的,流程库没有一个api可以与stdin一起使用;您可以使用管道,运行类似于
echo“my input”| python your_script.py
的命令,但当需要多个输入或一个选择系统时,它将变得复杂。坦白地说,在您的位置上,是的,我会将脚本迁移成函数(同时使用if uuuu name\uuuuuu=='\uuuuu main\uuuu'
构造来保留cli表单);无论如何,你最终都需要进行重构,以获得python3的支持;您可以使用管道,运行类似于echo“my input”| python your_script.py
的命令,但当需要多个输入或一个选择系统时,它将变得复杂。坦白地说,在您的位置上,是的,我会将脚本迁移成函数(同时使用if uuuu name\uuuuuu=='\uuuuu main\uuuu'
构造来保留cli表单);无论如何,您最终都需要进行重构,以获得python3支持。