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



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

将您的网站和登录信息包含在您的 conf.js 文件中,以便无需修改大量代码即可轻松更改。

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

然后,在您的规范.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()这样的命令.我相信你必须使用某种额外的代码库,以获得你想要的东西。

如果您只想测试两个环境,我会考虑简单地制作两个 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

(这将针对您的环境运行所有通用规范和 env1 URL(

如果要将测试从一个环境移动到另一个环境,或者如果它们与两者相关,则将它们移动到"通用"环境中,此方法也将变得更加容易。如果您需要第三个环境,设置第三个配置文件就足够简单了。

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

params: {
url : 'environment1'
}

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

browser.get(browser.params.url);

最新更新