我们正在使用 Cucumber 和 PageObject gem 测试一个 Web 应用程序,在 TeamCity 上运行 CI。我们遇到了一个我们都无法解决的问题。
我们正在访问两个下拉菜单,它们的组合内容会生成一个单选字段。当我从本地计算机运行它时,它通过了,但是当从集成服务器针对同一环境运行时,它大部分时间都失败了......
...除了晚上。我配置了一些预定的构建,这样我就可以在稳定的环境中观察它,并且它总是在一夜之间通过。
它抛出的错误是国家下拉列表(第二个字段,取决于“客户”,这是第一个)不包含选择的值。我已经手动检查过它,客户端框似乎是空的。
导致错误的自动化代码如下。请注意,我尝试了几种方法来访问它,包括下拉到 Watir Webdriver,但没有任何区别。
你认为这只是一个简单的性能问题吗?我不明白这是怎么回事,因为测试代理一次只运行一个项目,所以理论上它们应该执行相同的操作,而不管构建负载如何。
def safe_select_client(value, attempts = 10)
count_attempts_to(attempts)do
self.client_code = value
if self.client_code_element.selected? value
next
else
$stdout.puts attempts-1
safe_select_client(value, attempts-1)
end
end
end
def safe_select_country(value, attempts = 10)
count_attempts_to(attempts) do
self.client_country = value
if self.client_country_element.selected? value
next
else
safe_select_country(value, attempts-1) unless self.client_country_element.selected? value
end
end
end
def safe_select_proposition(value, attempts = 10)
count_attempts_to(attempts) do
self.select_default_proposition
safe_select_proposition(value, attempts-1) unless default_proposition_selected?
end
end