4

我有一些硬件组件希望以半自动化的方式进行测试。这将涉及类似于以下的程序步骤:

  1. 提示用户将信号 A 连接到连接器 J1
  2. 用户确认到位后,自动检查信号检测是否成功

我有使用 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 不会得到反馈。

4

1 回答 1

0

您基本上需要一些方法来暂停构建,直到用户交互。我认为还没有这样的公共插件,但是您可以检查某些文件是否存在或其内容并循环睡眠,直到满足您的条件。或者,您可以改为检查远程 URL。当用户准备好时,您更改文件/url,您的工作会检测到并继续。

我认为这样的插件不会很难写,但目前还没有……除了也许你看过jbpm 插件吗?它必须在复杂的场景中可用。

于 2013-04-15T20:51:18.973 回答