Protractor 如何在网站版本上使用量角器

Protractor 如何在网站版本上使用量角器,protractor,Protractor,我需要测试一个网站的两个不同版本,其中一个版本的功能与另一个稍有不同。作为其中的一部分,我想使用相同的代码,但取决于站点的IP地址,选择是否应该运行测试。有没有办法做到这一点。谢谢。将您的网站和登录信息包含在conf.js文件中,这样就可以在不修改大量代码的情况下轻松更改 // conf.js exports.config = { framework: 'jasmine', seleniumAddress: 'http://localhost:4444/wd/hub', params

我需要测试一个网站的两个不同版本,其中一个版本的功能与另一个稍有不同。作为其中的一部分,我想使用相同的代码,但取决于站点的IP地址,选择是否应该运行测试。有没有办法做到这一点。谢谢。

将您的网站和登录信息包含在conf.js文件中,这样就可以在不修改大量代码的情况下轻松更改

// conf.js
exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  params: {
    login: {
      username: '*****',
      password: '*****',
    },
    website: {
      url: '*****',
    },
  },
  specs: 'spec.js'
}
然后,在spec.js文件中,尝试以下操作:

// spec.js
describe('General Testing', function() {

  browser.driver.sleep(0).then(function() {
    if(browser.params.website.url == 'www.gmail.com'){
      it('should run this test', function() {
        // **********
      });
    } else {
        it('should run the second test', function() {
          // **********
        });
    }
  });

});
编辑:
我后来意识到,你的问题可能更具体地指的是ip地址,而不是url。我查看了量角器api,没有找到直接访问ip的方法。只有像browser.driver.getCurrentUrl和browser.driver.getTitle这样的命令。我相信你必须使用某种额外的代码库来获得你想要的东西。

< P>如果你有两个环境要测试,我会考虑简单地制作两个CONF文件——一个用于每个环境——并且将你的规格文件分成不同的文件夹,这取决于你希望它们运行的环境。

第一个配置将包含:

//env1conf.js
exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['./common/*spec.js', './env1/*spec.js'],
  onPrepare: function() {
      browser.get('environment1');
  }
}
第二点:

//env2conf.js
exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['./common/*spec.js', './env2/*spec.js'],
  onPrepare: function() {
      browser.get('environment2');
  }
}
在上面的示例中,您将有三个文件夹:common、env1和env2,每个文件夹都包含等级库文件。然后,您可以在一个或其他环境上运行测试,只需在运行量角器时引用一个或另一个配置即可:

> protractor env1conf
它将根据您的environment1 url运行所有公共规范和env1

如果您希望将测试从一个环境移动到另一个环境,或者如果测试与这两个环境都相关,则将它们移动到公共环境中,这种方法也会使您变得更容易。如果您需要第三个环境,那么设置第三个配置文件就足够简单了

请注意,在上面的配置文件中,我包含了一个onPrepare语句,它将导航到适当的环境,但您可以轻松地使用一个参数:

params: {
        url : 'environment1'
}
如果希望在实际规格中执行browser.get语句:

browser.get(browser.params.url);

嗨,bdf7kt,这是我要去的方向。我只是想也许有一个不同的方法,我可以使用。我使用的两个网站都有静态地址,这样对我来说更容易。谢谢你的帮助。