Automation 从TeamCity启动TestExecute

Automation 从TeamCity启动TestExecute,automation,teamcity,qa,testcomplete,Automation,Teamcity,Qa,Testcomplete,为了测试桌面应用程序,我们使用TestComplete/TestExecute。 我们有一个在管理机器上启动的主项目。 这个主项目不需要与桌面交互,它不是在测试我们的应用程序 该项目将通过TestExecute直接在不同的虚拟机上启动从属远程项目(需要桌面交互的应用程序的实际UI测试) 我们目前正在将构建过程转移到TeamCity。在这个管理机器上,我们有一个来自TeamCity的构建代理。生成代理正在使用系统帐户(而不是本地系统帐户)作为服务运行 我们没有使用本地系统帐户(可以与桌面交互),因

为了测试桌面应用程序,我们使用TestComplete/TestExecute。 我们有一个在管理机器上启动的主项目。 这个主项目不需要与桌面交互,它不是在测试我们的应用程序

该项目将通过TestExecute直接在不同的虚拟机上启动从属远程项目(需要桌面交互的应用程序的实际UI测试)

我们目前正在将构建过程转移到TeamCity。在这个管理机器上,我们有一个来自TeamCity的构建代理。生成代理正在使用系统帐户(而不是本地系统帐户)作为服务运行

我们没有使用本地系统帐户(可以与桌面交互),因为我们需要一个域帐户来访问域资源。我们不希望将代理作为一个进程启动,而是希望将其保留在一个服务中

目前,我们无法直接从TeamCity启动TestExecute,因为TestExecute需要一个交互式会话,并且生成代理的帐户无法与桌面交互。 我们尝试使用一个脚本(从TeamCity执行)来创建一个PSSession,其中有一个普通用户可以访问桌面并从此PSSession启动TestExecute。但这也不起作用

以下是我们在这两种情况下的例外情况(直接和通过PSSession):

有没有人能从TeamCity通过TestExecute启动测试的解决方案?正如我所说的,这个项目不需要与桌面交互,它将通过TestExecute直接在不同的虚拟机上启动UI测试


或者域系统帐户(如我们正在使用的帐户)是否可以与桌面交互?

您可以做的最简单的事情是从Team City运行主项目,主项目将在从机上调用UI测试。由于主项目不需要访问UI元素,因此在非UI会话中运行它不会有任何问题。

您可以做的最简单的事情是从Team City运行主项目,主项目将在从机上调用UI测试。由于主项目不需要访问UI元素,因此在非UI会话中运行它不会有任何问题。

在TestExecute的安装目录中,您可以找到清单文件
TCLauncher.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <!-- Here is the relevant part -->
        <requestedExecutionLevel level="asInvoker" uiAccess="true">
        </requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

您可以将uiAccess配置为false

如果您不使用TCLauncher,而是直接使用
TestExecute.exe
,那么还有一个清单文件,其中包含与您可以配置的
相同的部分


您也可以指定级别,从
asInvoker
highestAvailable
,但是您可能会收到
UAC

的提示。在TestExecute的安装目录中,您可以找到清单文件
TCLauncher.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <!-- Here is the relevant part -->
        <requestedExecutionLevel level="asInvoker" uiAccess="true">
        </requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

您可以将uiAccess配置为false

如果您不使用TCLauncher,而是直接使用
TestExecute.exe
,那么还有一个清单文件,其中包含与您可以配置的
相同的部分


您也可以指定级别,从
asInvoker
highestAvailable
,但您可能会收到
UAC

的提示,谢谢您的回答!!这可以解决我的问题!!这就是问题所在,我没有在清单中禁用此uiAccess…感谢您的回答!!这可以解决我的问题!!这就是问题所在,我没有在清单中禁用此uiAccess。。。