我已经能够使用简单的Webdriver安装程序(例如IWebDriver driver = new FirefoxDriver(); driver.Url = "http://www.testedApp.com";)并通过Microsoft.VisualStudio.TestTools.UnitTesting;在测试计算机上本地运行Selenium测试,但是当我通过Team Foundation Server vnext部署测试时,构建步骤“测试:运行功能”测试” https://www.visualstudio.com/en-gb/docs/build/steps/test/run-functional-tests我遇到了各种各样的错误,这些错误似乎都与最初无法创建驱动程序有关。

我将硒测试部署到已安装了要测试的应用程序的远程计算机(Windows Server 2008 R2或2012)上。我将url放置在driver.Url = "http://www.testedApp.com";driver.Url = "http://www.localhost/testedApp.com";机器(似乎仍在TFS服务器机器上,而不是我已将测试部署到的机器上)运行的机器似乎没有问题,超时导致我对堆栈溢出的此答案

Selenium Error - The HTTP request to the remote WebDriver timed out after 60 seconds

在尝试了所有选项之后,进一步查找,我发现了Selenium Server和RemoteWebdriver(RemoteWebdriver实际上在我的错误中非常深入)

我还在管理员帐户下在远程计算机上运行测试代理,因此可以假设用户界面访问不会有问题,但是如果我将Phantomjs用作浏览器,该错误也会继续存在。

因此,我想我的真正问题是,为了在TFS机器上的远程机器上成功运行测试,我是否需要安装和运行Selemium Server(并因此通过RemoteWebdriver创建驱动程序)?

如果是这样,此Selenium Server可以在TFS机器上运行,还是在我尝试在其上运行测试的远程机器上运行?

最佳答案

我只是想用我的解决方案来更新它。

我设法在不使用remoteWebDriver或不运行带有节点的Selenium Server的情况下,使vnext构建步骤“测试:运行功能测试”正常运行。

我打开了所有正确的信任级别和端口,我的问题是我没有意识到我需要让代理运行通过PAT令牌进行身份验证的测试(换句话说,它要求ssl才能成功运行)(DOH !)

我还遇到了一个问题,即域策略一直将自动登录的组策略重置为0,这是我通过在启动测试之前运行脚本进行重置来解决的。

希望这对其他人有帮助。

如果我的问题最初导致一些错误的假设,我谨此表示歉意。

但是,不用说,我很感激我不需要维护硒服务器(或Octopus部署),而且Vnext构建足以适应内部处理。

Vnext仍然有办法完全适应我的需求,但这是一个不错的开始(imo)

08-26 23:36