有没有办法使用Jenkins运行交互式测试脚本(并让用户实际与之交互)?

时间:2013-04-15 17:35:45

标签: linux testing jenkins

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

  1. 提示用户将信号A连接到连接器J1
  2. 用户确认此信息后,自动检查信号检测是否成功
  3. 我有使用bash,python等编写此类测试的经验。我还使用Jenkins来管理构建和自动化测试。我想做的事情(如果可能的话)是将两者结合起来并使用Jenkins管理测试计算机上的交互式脚本的运行。这将允许我利用Jenkins的能力在测试计算机上一致地生成脚本,并无限期地存档工件和控制台输出历史记录。我不确定的部分是如何允许用户与正在进行的Jenkins作业进行交互。有没有人有这方面的经验或知道是否可能?

    这是在Linux系统上,所以也许我可以在用户可以附加到的“屏幕”会话中运行它?

    有没有更好的工具可供我使用?我没有考虑过?

    编辑1:

    我确实听说过"Remote Terminal Access Plugin",但这不允许与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不会得到反馈。

1 个答案:

答案 0 :(得分:0)

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

我认为这样的插件并不难写,但还没有什么......除了你可能看过 jbpm插件?它必须在复杂的场景中使用。