【问题标题】:How do I get Robotframework (in Eclipse) to respond to terminal prompt如何让 Robotframework(在 Eclipse 中)响应终端提示
【发布时间】:2019-10-21 06:49:29
【问题描述】:

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

x = input("选择一个设备:")

选定 = int(x)

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

看起来这应该很容易,但我似乎无法弄清楚。既然你在一段等待输入的代码中,你如何让 RobotFramework 用它做点什么?

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

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

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

【问题讨论】:

    标签: eclipse usb robotframework


    【解决方案1】:

    好的,我使用 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')
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      • 2023-03-18
      相关资源
      最近更新 更多