如何获得Robotframework(在Eclipse中)以响应终端提示

时间:2019-06-05 18:12:25

标签: eclipse usb robotframework

我目前正在Windows 10 OS的Eclipse中运行Robotframework。我正在使用一个外部python库,该库允许学生和教师使用此提取的库连接到我们的硬件设备。我正在自动执行我们开发人员从主站点程序包中提取的内容。如果将多个设备插入PC的USB端口,则代码将执行以下操作:

x =输入(“选择一台设备:”)

selected = int(x)

这会导致出现终端提示,因此用户必须输入0或1(例如),然后按Enter键。用户响应将允许代码进一步处理与所选设备的连接。注意,此提示不是GUI。因此,当我运行Robotframework时,它将执行直到提示的步骤。

这似乎应该很容易,但是我似乎无法弄清楚。由于您处于等待输入的一段代码中,因此如何使RobotFramework对其进行处理?

编辑:在我看来,也许有一种方法可以执行延迟的Robotframework步骤,该步骤在指定时间后启动外部python命令,并抛出“ 0”和RETURN键响应。我有一个从pynput.py库导入制成的python文件,该文件似乎可以从命令行执行工作(打印0或1,以及返回换行)。我想有一种更简单的方法,但我不知道它是什么。

编辑:我是否可以从监听命令提示符的侦听器中运行关键字,并且该关键字运行另一个python文件来提供提示?如果我可以正常工作,那么我所要做的就是将设备留在USB端口(或与此相关的集线器)上,然后选择要对其进行进一步测试的设备。我们的设备也支持Blooth牙齿,但是我需要同时运行USB和BLE测试以验证老师和学生可以使用的Python提取物。

编辑:另一种选择是使用软件可编程集线器并选择上面带有特定设备的USB,但我试图避免这种情况。

1 个答案:

答案 0 :(得分:2)

好的,我使用Robotframework后台进程解决了它。我写了一个从程序执行的小python文件。它有一个5秒的计时器(超出了我的需要),然后Robotframework运行下一个测试用例步骤。然后,Python文件会进行一些键盘操作,选择端口和一个进入控制台的ENTER键(输入输入提示)。它连接传感器。

因此,在我的Robotframework测试用例中,请执行以下操作:

*** Test Case ***
smoke_test
    Start process .   Python .   usbportselect
    open usb

从进程中调用的Python程序如下所示:

import time
import pynput
from pynput.keyboard import Key, Controller
keyboard = Controller()

def choose_usb(portvalue)
    keyboard.press(portvalue)
    keyboard.release(portvalue)
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)

time.sleep(5)
choose_usb('0')

注意:我很确定这不会解决使用流程的所有问题,但这至少是一个开始,也是一种将输入输入到以后的测试用例步骤中所产生的提示的方法