gpt4 book ai didi

capybara - Watir-webdriver 或 Capybara

转载 作者:行者123 更新时间:2023-12-03 03:19:16 39 4
gpt4 key购买 nike

我目前使用 Watir-webdriver 进行所有前端测试,但开发团队使用 Capybara 在 Jenkins CI 上运行测试。我们都使用相同的 Cucumber 功能。

值得我们进行两次有效的单独测试吗?哪一个是更好使用的工具?我已经阅读了网络上所有可用的比较,并且更喜欢使用 watir-webdriver,但是 Capybara 允许我无缝地使用 headless 测试。

有什么有用的想法和想法吗?我正处于十字路口,不确定是否放弃 Watir-webdriver 而与开发团队的其他成员一起使用 Capybara。

最佳答案

至于是否对相同的 cucumber 功能使用两种不同的工具取决于测试领域以及哪个最适合它。 Watir-webdriver 是否比 Capybara-webdriver 更适合前端测试,反之亦然。您需要花一些时间研究 Capybara(一种设计尖峰,用敏捷术语来说),将其与您习惯的进行比较。尝试保持客观,即使使用熟悉的框架非常很困难(根据我的经验),然后进行更改的成本效益分析。直接成本可能只是时间/精力,但它仍然是一个会影响项目交付的成本。

Capybara 与 DRY 编程并非不兼容 - 抽象层(就像 Abe 在他的回复中提到的那样)可以通过 Capybara 的自定义选择器实现。创建这些后,您可以在自定义选择器上使用 capybara 查找器和匹配器,如下所示;

Capybara.add_selector(:slide_show) do
xpath { ".//div[contains(@class,'slideshow')]" }
end

Capybara.add_selector(:slide_show_element) do
xpath { ".//div[contains(@class,'slideshowelem')]" }
end

允许您使用 capybara 的查找功能;

find(:slide_show_element, 'Sunset').click

从 Cucumber 的角度来看,可以从步骤中传递定位器字符串;

And I Click "Sunset" in the "Holiday Pictures" Slide Show

通过这样的步骤定义;

Given /^(?:I |)Click "(.*?)" in the "(.*?)" Slide Show$/i do |picture,slideshow|
within(:slide_show, slideshow) do
find(:slide_show_element, picture).click
end
end

所以,问题仍然是流程之一 - 两个框架是否会影响您的工作流程?协调两者是否会造成 Not Acceptable 时间损失?

关于capybara - Watir-webdriver 或 Capybara,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991762/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com