我目前正在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,但我试图避免这种情况。
答案 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')
注意:我很确定这不会解决使用流程的所有问题,但这至少是一个开始,也是一种将输入输入到以后的测试用例步骤中所产生的提示的方法