我有一些硬件组件,我希望以半自动方式进行测试。这将涉及类似于以下的程序步骤:
我有使用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不会得到反馈。
答案 0 :(得分:0)
你基本上需要一些方法来暂停构建,直到用户交互。我认为还没有这样的公共插件,但你可以检查一些文件是否存在或其内容并循环睡眠,直到满足你的条件。或者您可以检查远程URL。用户准备好后,您可以更改文件/网址,您的作业会检测到并继续。
我认为这样的插件并不难写,但还没有什么......除了你可能看过 jbpm插件?它必须在复杂的场景中使用。