对外部资源编写集成测试这是A / B测试(Writing integration tests aga

2019-07-31 03:47发布

我有一点设计问题,我很好奇,如果其他用户遇到了这个问题以及如何开发出最优雅的解决方案。 我在用黄瓜水豚/迅捷/硒一些集成式功能测试。 这些测试的一部分驱动外部网站上看到我的资源如何整合好(饼干,使用Javascript,等等)。

一个特定的外部网站正在经历一个类似但不同显著网站设计自己沉重的A / B测试,所以我的测试失败与新与旧的工作,因此只通过的时间约50%。 显然,重写我的测试中新是毫无意义的,因为这些仍然会失败,其他50%。

我试过paramaterizing我的功能类似的方式:

Given I visit the new site
And I click on the link that is labeled "new link text"

Given I visit the old site
And I click on the link that is labeled "old link text"

...

When /^I visit the (old|new) site$/ do |version|
  version_url = "http://www.example.com/?backdoorversionparam=0"
  if version == "new"
    version_url = "http://www.example.com/?backdoorversionparam=1"
  end
  When "I go to the page \"#{version_url}\""
end

这仍然需要我写两个基本相同的,相当大的特征文件(但所有的参数改变)。 我要去只是后来弃用旧的,然后我的所有代码是复杂的。 有没有回落到备用测试如果失败的方法吗? 什么是设计这个知道的页面设计,测试将会进行一个月左右,最优雅的方式,整个网站可能再过一年再次发生变化?

文章来源: Writing integration tests against external resources which are A/B testing