Jenkins - 如何与脚本输入交互 - 在运行时

时间:2013-03-28 16:36:40

标签: input jenkins runtime interactive

我有一个小脚本,它生成两个RANDOM数字,添加它们并提示用户(如果SUM是>或者是特定值) - 继续或不继续。

因此,脚本是:

bash-3.00$ cat use_random.sh
#!/bin/bash

func ()
{
 a=$RANDOM
 b=$RANDOM
 sum=`expr $a + $b`

 echo A = $a
 echo B = $b
 echo
 echo Sum of A + B is : $sum
}

choice=y;
until [ "$choice" == "n" ];
do
 # call func
 echo ---------------------------------------------; echo;
 func;

 echo Sleeping for 3 seconds...
 sleep 3;
 echo -
 echo "IF SUM value is greater than 3500, then press 'n' otherwise, press 'y'"; echo;
 echo -n "Do you want to continue (y/n)? : "; read choice;
 echo ---------------------------------------------; echo;
done

bash-3.00$

脚本的运行std.output很少

bash-3.00$ ./use_random.sh
---------------------------------------------

A = 20359
B = 15866

Sum of A + B is : 36225
Sleeping for 3 seconds...
-
IF SUM value is greater than 3500, then press 'n' otherwise, press 'y'

Do you want to continue (y/n)? : n
---------------------------------------------

bash-3.00$

的bash-3.00 $

bash-3.00$ ./use_random.sh
---------------------------------------------

A = 18058
B = 20395

Sum of A + B is : 38453
Sleeping for 3 seconds...
-
IF SUM value is greater than 3500, then press 'n' otherwise, press 'y'

Do you want to continue (y/n)? : n
---------------------------------------------

bash-3.00$

的bash-3.00 $ 的bash-3.00 $

bash-3.00$ ./use_random.sh
---------------------------------------------

A = 6016
B = 13489

Sum of A + B is : 19505
Sleeping for 3 seconds...
-
IF SUM value is greater than 3500, then press 'n' otherwise, press 'y'

Do you want to continue (y/n)? : y
---------------------------------------------

---------------------------------------------

A = 25837
B = 3852

Sum of A + B is : 29689
Sleeping for 3 seconds...
-
IF SUM value is greater than 3500, then press 'n' otherwise, press 'y'

Do you want to continue (y/n)? : y
---------------------------------------------

---------------------------------------------

A = 7565
B = 3220

Sum of A + B is : 10785
Sleeping for 3 seconds...
-
IF SUM value is greater than 3500, then press 'n' otherwise, press 'y'

Do you want to continue (y/n)? : y
---------------------------------------------

---------------------------------------------

A = 32092
B = 22688

Sum of A + B is : 54780
Sleeping for 3 seconds...
-
IF SUM value is greater than 3500, then press 'n' otherwise, press 'y'

Do you want to continue (y/n)? : n
---------------------------------------------

bash-3.00$

如上所述,当我前两次运行脚本时,它给出的SUM值小于3500,所以我按下了#34; n" (这是一个必须的用户提示/输入,用于我的自动化需求,在这里我已经拿了这个SUM示例并提示只是为了说明我的情况),当它小于3500时,我按下了#34; y", N没有。在SUM值低于3500时的时间。

现在,怎么能在Jenkins中做到这一点

我无法使用参数化构建插件(A和B变量是随机生成的,所以我不希望用户传递它),即调用脚本时不需要以下技巧:

回声"输入" | script_or_command

script_or_command< file_with_input

其次,用户的输入继续(按y或n)取决于这两个随机变量值的和。用户不知道他有多少时间按下" y"在最后按下" n"来/退出脚本。换句话说,用户可以提前对输入进行硬编码(因为他的输入取决于运行时)。注意:我不想让AI足以使用SUM值做出决定,因为继续用户输入是我要求我在Jenkins中做的。

如果我调用我的脚本" use_random.sh"我有什么想法可以让它工作。在詹金斯?

Giga AKS

2 个答案:

答案 0 :(得分:0)

除非您使用某种“AI”,否则您将无法测试这是任何类型的连续测试系统。在您的情况下,应该相对简单 - 您需要做的就是编写第二个调用第一个脚本的脚本,提取SUM的值(例如使用grep)并生成相应发送到第一个脚本的输入。

答案 1 :(得分:0)

实际上,当它只有少数这样的脚本时,我会同意你的看法。

但是,我有几百个这样的脚本,提示用户输入“基于运行时条件”的输入。

例如:当用户说 - 每天以不同的顺序运行某些东西(5个文件/命令/等)时,那些东西(文件/命令)本质上是随机的,因为/是用于项目/应用程序。选择要继续/运行另一个脚本/ ssh到1-N ssh服务器的值取决于这些因素。考虑这种情况:即,我得到Shell选择“菜单”选项,其中文件/命令/应用程序可以在#4或在接下来的几天它可以在#13或15.因此,取决于当前OS的状态或者应用程序是我想要弄清楚的,简而言之就是:

我们可以使用Jenkins的工作,而不是看到其他许多方法 - 是否有任何简单/清晰的方式可以完全按照我的要求运行(即Jenkins在控制台中运行脚本时提示输入“用户输入”)输出窗口...... - 非常像脚本,当我们在Linux / Unix $提示符下运行它时?
感谢你的回复。