您是否需要使用远程WebDriver运行Selenium服务器才能执行TFS 2017 vnext版本中的步骤"Run Functional Tests"?



我已经能够使用简单的 Web 驱动程序设置(例如IWebDriver driver = new FirefoxDriver(); driver.Url = "http://www.testedApp.com";)在我的测试机器上本地运行 Selenium 测试并通过Microsoft.VisualStudio.TestTools.UnitTesting;运行测试,但是当我通过 Team Foundation Server vnext Build 步骤"测试:运行功能测试"部署测试时 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 错误 - 对远程 Web 驱动程序的 HTTP 请求在 60 秒后超时

在尝试了那里的所有选项后,进一步查看,我发现了Selenium服务器和RemoteWebdriver(RemoteWebdriver实际上在我的错误中非常深)

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

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

如果是这样,这个硒服务器会放在TFS机器上,还是在我尝试运行测试的远程机器上?

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

我设法让 vnext 构建步骤"测试:运行功能测试"工作,而无需使用 remoteWebDriver 或运行带有节点的 Selenium 服务器。

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

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

希望这对其他人有所帮助。

如果我的问题最初导致一些错误的假设,我提前道歉。

但是,不用说,我很感激我不需要维护硒服务器(或Octopus部署),并且Vnext构建具有足够的适应性,可以在内部处理这一切。

Vnext 还有很长的路要走才能完全适应我的需求,但这是一个很好的开始(imo)

您将需要在每台运行浏览器的计算机上使用Selenium服务器或节点。

最新更新