2

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

我正在将 selenium 测试部署到已经安装了要测试的应用程序的远程计算机(Windows Server 2008 R2 或 2012)上。如果我将 url 放入driver.Url = "http://www.testedApp.com";driver.Url = "http://www.localhost/testedApp.com";机器(它看起来仍在从 TFS 服务器机器上运行,而不是我已经部署测试的机器上运行)似乎在超时时失败,这似乎并不重要,这导致了我堆栈溢出的答案

Selenium 错误 - 对远程 WebDriver 的 HTTP 请求在 60 秒后超时

在尝试了所有选项之后,进一步观察,我发现了 Selenium Server 和 RemoteWebdriver(RemoteWebdriver 实际上在我的错误中很深)

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

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

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

4

2 回答 2

2

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

我设法在不使用 remoteWebDriver 或运行带有节点的 Selenium 服务器的情况下使 vnext Build 步骤“测试:运行功能测试”工作。

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

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

希望这对其他人有帮助。

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

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

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

于 2017-04-05T23:51:11.553 回答
1

在每台运行浏览器的机器上,您都需要一个 selenium 服务器或节点。

于 2017-03-26T07:39:25.160 回答