3

我有一个 signup.js 测试,可以自动注册我的网络应用程序(显然)。我们目前正在 a/b 测试一个新流程,该流程会将您带到不同的页面(“.com/signupa”与“.com/signupb”),我想知道在我的测试中反映这一点的最佳方式是什么。

选项:

  • 在 .com/signupb使用evaluateOrDie并让它死掉(这看起来很愚蠢)
  • 充实 .com/signupb 的测试,如果它通过该测试(这可能吗?),就让它走这条路。

    casper.waitForResource("classic.png",
       function success() {
          this.echo('on the old signup flow ');
          <continue with regular signup test>
      },  
      function fail() {
          this.test.assertExists("classic.png");
          <do something else>
      });
    

任何其他想法都非常感谢!

4

1 回答 1

2

我的偏好是在您的每个页面中隐藏一些信息,以便您可以干净地打开它们。例如

<span id="version1"></span>

对比

<span id="version2"></span>

然后,提交表单后:

casper.then(function(){
  if (this.exists('#version2')) {
    testNewSite(this);
    } else {
    testOldSite(this);
    }
  });

但是检测您已经知道的内容仅在其中一个页面中,例如您在问题中显示的“classic.png”,也可以。(只是感觉有点脆弱:Web 开发团队可以通过重命名该图像或将具有该名称的图像放入新版本等来破坏您的测试。)

于 2013-11-10T01:00:53.977 回答