通过Jenkins执行UFT测试时出现UI问题

通过Jenkins执行UFT测试时出现UI问题,jenkins,hp-uft,Jenkins,Hp Uft,我让Jenkins作为一个服务运行,并且有一个在远程从机上执行UFT测试的任务。作为管道的一部分,我需要卸载产品,重新启动从机,安装产品(最新版本)并开始测试执行。 因为UFT测试需要一个专用的UI,所以我尝试从一个临时VM启动到测试VM的mstsc连接。但是由于Jenkins是作为服务运行的,所以mstsc进程作为临时VM上的后台进程运行。由于这个原因,UFT测试没有一个专用的UI,一些测试失败了 尝试使用war文件而不是服务运行Jenkins。但在30-40分钟左右之后,主从连接就会中断 任

我让Jenkins作为一个服务运行,并且有一个在远程从机上执行UFT测试的任务。作为管道的一部分,我需要卸载产品,重新启动从机,安装产品(最新版本)并开始测试执行。 因为UFT测试需要一个专用的UI,所以我尝试从一个临时VM启动到测试VM的mstsc连接。但是由于Jenkins是作为服务运行的,所以mstsc进程作为临时VM上的后台进程运行。由于这个原因,UFT测试没有一个专用的UI,一些测试失败了

尝试使用war文件而不是服务运行Jenkins。但在30-40分钟左右之后,主从连接就会中断


任何变通方法/调整都将不胜感激。

UFT需要一些Win32操作的交互式会话

在工具中⇨ 在“选项”菜单中,选择“常规”⇨ 在那里运行会话您将发现一个选项,可以在锁定/断开连接的远程计算机上启用持续测试,这对您的情况也有帮助


对于某些Win32操作,UFT需要一个交互式会话

在工具中⇨ 在“选项”菜单中,选择“常规”⇨ 在那里运行会话您将发现一个选项,可以在锁定/断开连接的远程计算机上启用持续测试,这对您的情况也有帮助


您需要将jenkins remote agent(war)作为正常进程而不是服务运行,否则,正如您所提到的,它们没有桌面

我的建议:

  • 确保jenkins远程代理作为正常操作系统进程运行(在两个虚拟机上)。您可以有一个Windows计划任务,该任务在登录时启动此进程,并每5分钟检查一次该进程是否仍处于活动状态(如果没有,则重新启动)
  • 在临时VM(让我们称之为网关)唤醒您的测试VM后,测试VM应该执行tscon命令,该命令将当前活动的RDP会话重定向到控制台(物理监视器-在虚拟机上它是虚拟的)。这将帮助您在下次重新启动之前保持UI会话的活动状态,而无需担心网关 . 示例:tsconrdp tcp#1/dest:console这可以通过登录时执行的计划任务再次解决(等待几秒钟以确保)
  • 让caffee.exe或MouseJiggle.exe作为进程在后台运行(也在登录时启动),以确保屏幕从未锁定或任何屏幕保护程序都已激活。这两种工具都是免费的
  • 如果你的Jenkins连接中断,那是另一个与UFT无关的问题。在我的情况下,这种组合效果非常好。自动安装这些东西也很容易。Windows批处理和Vbs可以为您完成所有这些任务。(将提到的工具放入%PATH%并以编程方式创建计划任务)

  • **额外提示:为了避免taskkill java.exe命令杀死远程代理,您只需将jvm的java.exe重命名为jenkins_remote_agent.exe,并将其用作jenkins远程代理的可执行文件

    否则,您需要将jenkins远程代理(war)作为正常进程而非服务运行,正如你提到的,他们没有桌面

    我的建议:

  • 确保jenkins远程代理作为正常操作系统进程运行(在两个虚拟机上)。您可以有一个Windows计划任务,该任务在登录时启动此进程,并每5分钟检查一次该进程是否仍处于活动状态(如果没有,则重新启动)
  • 在临时VM(让我们称之为网关)唤醒您的测试VM后,测试VM应该执行tscon命令,该命令将当前活动的RDP会话重定向到控制台(物理监视器-在虚拟机上它是虚拟的)。这将帮助您在下次重新启动之前保持UI会话的活动状态,而无需担心网关 . 示例:tsconrdp tcp#1/dest:console这可以通过登录时执行的计划任务再次解决(等待几秒钟以确保)
  • 让caffee.exe或MouseJiggle.exe作为进程在后台运行(也在登录时启动),以确保屏幕从未锁定或任何屏幕保护程序都已激活。这两种工具都是免费的
  • 如果你的Jenkins连接中断,那是另一个与UFT无关的问题。在我的情况下,这种组合效果非常好。自动安装这些东西也很容易。Windows批处理和Vbs可以为您完成所有这些任务。(将提到的工具放入%PATH%并以编程方式创建计划任务)
  • **额外提示:为了避免taskkill java.exe命令杀死远程代理,您可以简单地将jvm的java.exe重命名为jenkins_remote_agent.exe,并将其用作jenkins remote agent的可执行文件