【问题标题】:Run Selenium UI test on TFS build server for Asp.Net WebForms在 Asp.Net WebForms 的 TFS 构建服务器上运行 Selenium UI 测试
【发布时间】:2021-03-03 01:03:12
【问题描述】:

我是 Selenium 和 TFS 构建的新手。我用 Selenium WebDriver 编写了一些 UI 测试用例,它在我的本地环境中运行良好。现在,我想在 TFS 构建中运行这些 UI 测试用例。我对现有的构建任务执行了以下操作。

  • 添加了 Visual Studio 测试平台安装程序
  • 添加了 Visual Studio 测试任务

vsTest 在以下行失败并出现错误:System.Net.WebException:底层连接已关闭:连接意外关闭。

new DriverManager().SetUpDriver(new ChromeConfig());

我发现上面的代码行尝试检查最新版本的 WebDriver 并从https://chromedriver.storage.googleapis.com 下载如果不存在。但是,在 TFS 构建服务器上,外部 URL 已关闭,这可能就是原因。仍然不确定,我正在尝试在构建服务器上打开此 Url。

[更新] 我设法在 TFS 构建服务器上打开了 googleapis.com 网址。现在浏览 microsoft.com 的示例测试正在运行,但我自己的网站(例如:http://domain 或 localhost/page.aspx)的测试仍然失败。收到以下错误:

OpenQA.Selenium.WebDriverException : unknown error: net::ERR_CONNECTION_REFUSED
(Session info: headless chrome=87.0.4280.66)

仅供参考,TFS 构建服务器上没有 IIS。此外,这是一个 Asp.Net WebForms 应用程序。

我需要在 IIS 或 IIS Express 上托管网站/代码吗?只是想知道没有托管如何测试能够浏览它?抱歉这些问题,第一次做,不知道如何设置所有东西。

注意:我想在构建中而不是在发布中执行此操作。在构建管道中是否可行?还是必须在发布管道中完成?我已经在无头模式下为 Chrome 配置了测试

【问题讨论】:

    标签: selenium-webdriver tfsbuild azure-pipelines-build-task visual-studio-test-runner


    【解决方案1】:

    据我所知,Selenium UI 测试可以在构建和发布管道中执行。

    OpenQA.Selenium.WebDriverException:未知错误:找不到 Chrome 二进制文件

    问题似乎是chrome驱动找不到chrome.exe文件。

    由于您使用 TFS 运行测试,因此您需要确保在代理所在的机器上安装了 Chrome。如果只安装 chrome 驱动,就会遇到这个问题。

    如果你已经安装了 Chrome,你可以查看 chrome.exe 的文件路径。

    根据ChromeDriver - Requirements。

    另一方面,这个问题可能与chrome的版本有关,这是一个open ticket,有类似的问题,你可以参考一下。

    您可以尝试运行以下脚本并检查它是否可以工作:

    npm i chromedriver --chromedriver_version=LATEST --save-dev
    

    【讨论】:

    • 感谢您的回复。我设法打开了 googleapis.com 网址。现在,浏览 microsoft.com 的示例测试用例正在运行,但对我的网站的测试不起作用。我收到一条错误消息:OpenQA.Selenium.WebDriverException:未知错误:net::ERR_CONNECTION_REFUSED(会话信息:headless chrome=87.0.4280.66)
    • 如果可以的话,请对我的问题有所了解。当测试将尝试在 TFS 构建服务器上浏览网站时,它将如何获取该网站?由于它尚未托管在 TFS 服务器上
    • 嗨@Maxcom。如果在 TFS Server 机器上的 Browser 中直接访问网站,是否可以正常工作?如果可以的话,您可以尝试使用网址中的IP地址:http://IP(X.X.X.X):8080/您可以分享连接网站的代码。
    • 感谢您的评论。实际上,TFS Build 服务器上的防火墙关闭了大部分 URL。而且由于网站/代码未托管在 TFS 构建服务器上,因此我无法使用 localhost/IP 浏览它。现在,我正在尝试在 TFS 构建服务器上实例化 IIS Express 以运行网站,然后在其上执行测试用例。再次感谢您的意见。
    • 一旦我完成了我正在尝试的方法(IIS Express),我将在此处发布所有详细信息。虽然你的回答真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2013-10-13
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多