Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用RobotFramework在Python shell中运行Python脚本?_Python_Robotframework - Fatal编程技术网

如何使用RobotFramework在Python shell中运行Python脚本?

如何使用RobotFramework在Python shell中运行Python脚本?,python,robotframework,Python,Robotframework,我继承了一个Python自动化框架,其中包含数十个Python脚本,我们希望重用这些脚本,以避免在新的RobotFramework框架中重写它们 我希望运行的主脚本: •打开Python外壳 •发送一些输出 •接受参数(真/假:1/0) •运行脚本的其余部分 这些脚本已添加到我的框架中一个名为“PythonLibraries”的单独文件夹中。当通过终端手动调用时,脚本工作。它们运行、请求参数并继续脚本的其余部分,这样脚本本身就不会出现任何问题 我想要的是使用RobotFramework实现自动化

我继承了一个Python自动化框架,其中包含数十个Python脚本,我们希望重用这些脚本,以避免在新的RobotFramework框架中重写它们

我希望运行的主脚本:

•打开Python外壳

•发送一些输出

•接受参数(真/假:1/0)

•运行脚本的其余部分

这些脚本已添加到我的框架中一个名为“PythonLibraries”的单独文件夹中。当通过终端手动调用时,脚本工作。它们运行、请求参数并继续脚本的其余部分,这样脚本本身就不会出现任何问题

我想要的是使用RobotFramework实现自动化。其思想是将python脚本导入到我的.robot文件中,创建一个关键字来运行脚本并让它接受一个参数,然后将输出保存到一个变量或文件中,以便我可以查看输出的内容

几天来,我一直在努力让这一切顺利进行。我一直在尝试使用“流程”库,但是在线支持/示例很少。当试图运行脚本时,终端挂起,不输出任何内容。所以要么我的剧本错了,要么我做错了什么

下面是我希望运行的python脚本

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支持。