如何在网站版本

时间:2017-07-10 13:57:15

标签: protractor

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

2 个答案:

答案 0 :(得分:1)

Make your website and login information included into your conf.js file so that it can be readily changed without modifying large amounts of your code.

// conf.js
exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  params: {
    login: {
      username: '*****',
      password: '*****',
    },
    website: {
      url: '*****',
    },
  },
  specs: 'spec.js'
}

Then, inside your spec.js file, try the following:

// 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() {
          // **********
        });
    }
  });

});

EDITED: I realized afterwards, that your question might be referring more specifically to the ip address rather than a url. I looked through the protractor api, and found no direct way to access the ip. There are only commands like browser.driver.getCurrentUrl() and browser.driver.getTitle(). I believe you would have to use some sort of extra codebase, to obtain what you desire.

答案 1 :(得分:0)

如果您只想要测试两个环境,我会考虑简单地制作两个conf文件 - 每个环境一个 - 并将您的spec文件分成不同的文件夹,具体取决于您希望它们运行的​​环境。

第一个配置包含:

//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),每个文件夹都包含spec文件。然后,只需在运行量角器时引用一个配置或另一个配置,就可以在一个或另一个环境上运行测试:

> protractor env1conf

(将运行所有相关的规范,并针对您的environment1网址运行env1)

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

请注意,在上面的配置文件中,我添加了onPrepare语句,该语句将导航到相应的环境,但您可以轻松使用参数:

params: {
        url : 'environment1'
}

如果您希望在实际规范中执行browser.get语句:

browser.get(browser.params.url);