【发布时间】:2017-09-29 16:38:32
【问题描述】:
我在 Google 上找不到有关此主题的太多信息。下面,我提供了来自相同 Selenium 测试的三个结果。为什么在不同地方运行测试时会得到不同的结果?
信息:
所以我们的架构:Bitbucket、Bamboo Stage 1(构建、部署到 QA)、Bamboo Stage 2(启动 Amazon EC2 实例“测试”,针对最近部署的 QA 运行测试)
- 使用 Chrome 网络驱动程序。
- 对于所有三个变体,我使用部署我们的应用程序的相同 QA URL。
- 我正在运行所有测试 Parallelizable per fixture
- EC2 实例正在运行 Windows Server 2012 R2 并安装了 Chrome 浏览器
- 我已确保测试解决方案已正确部署到 EC2“测试”实例。它确实是完全相同的解决方案并且可以正确构建。
首先,本地:
其次,来自 EC2 通过调用测试的 SSM 脚本: 请注意,PowerShell 脚本调用 nunit3-console.exe 就像在我的第三个示例中使用命令行一样。
最后,RDP 在 EC2 上并从命令行运行测试:
这让我很困惑......为什么 Selenium 在不同的机器上运行不同?
【问题讨论】:
-
什么是失败/错误?
-
视情况而定,有时它是 NoSuchElementException,有时它在应该为真时断言为假。结果并不一致。编辑:我确保我运行的是相同版本的 Chrome 浏览器。我认为这是浏览器问题。
-
这可能是由于与延迟相比超时太低,或者由于缺少显式等待。也可能是浏览器启动时窗口太小。您必须进行调查才能找到原因。您的帖子中没有足够的信息来说明原因。
-
而且很难判断窗口大小。从 powershell 脚本运行时,chrome 浏览器实例在后台运行。我什至看不到窗户。我等待设置以确保页面在任何操作之前已完全加载。我正在使用 POM 模型。这可以解释为什么我随机得到 NoSuchElementExceptions ......也许我需要在 window.maximize 之后添加一个显式等待。我会玩这个。
-
我会尝试为窗口设置一个特定的大小,而不是调用最大化。您也可以尝试使用无头命令开关。
标签: powershell selenium amazon-ec2 nunit nunit-console