我有一些硬件组件希望以半自动化的方式进行测试。这将涉及类似于以下的程序步骤:
- 提示用户将信号 A 连接到连接器 J1
- 用户确认到位后,自动检查信号检测是否成功
我有使用 bash、python 等编写此类测试的经验。我还使用 Jenkins 来管理构建和自动化测试。我想做的(如果可能的话)是以某种方式将两者结合起来,并使用 Jenkins 来管理测试计算机上交互式脚本的运行。这将使我能够利用 Jenkins 在测试计算机上始终如一地生成脚本并无限期地存档工件和控制台输出历史记录的能力。我不确定的部分是如何允许用户与正在进行的 Jenkins 作业进行交互。有没有人有这方面的经验或知道是否有可能?
这是在 Linux 系统上,所以也许我可以在用户可以附加到的“屏幕”会话中运行它?
有没有更好的工具可以用于这个我没有考虑过的?
编辑1:
我确实听说过“远程终端访问插件”,但这不允许与 Jenkins 构建直接交互。
到目前为止,我发现的最好的潜在解决方案是启动一个启用了日志记录的“屏幕”会话,并让用户在从属设备上与这个会话进行交互:
screen -S test -d -m -L ./myscript.sh
PID=`screen -list | grep test | awk '{print $1}' | sed 's/\..*//g'`
#This will show the output of the screen session in the jenkins console:
tail -f screenlog.0 --pid=$PID
然后在从站,用户可以像这样附加到这个屏幕:
screen -r test
这种方法的缺点是,如果发生故障,Jenkins 不会得到反馈。