使用 CasperJS 和配置文件的前端无头浏览器测试?
Frontend headless browser testing using CasperJS and configuration-files?
我尝试使用 CasperJS 使用 PhantomJS 进行无头浏览器测试,并希望有一个配置文件或其他东西来更改网站 URL、用户名密码等。所以最后我找到了 NuclearJS。你们知道任何其他完美的方法吗?如果我想从头写一个也想了解一下。
我得到了一个使用多个配置文件(用于选择器、执行、桌面、移动等)的解决方案(不完美;))。
我在执行我的 casperjs 测试时包含了一个文件,该文件为我提供了我需要的所有配置(我在那里还包含了全局函数)。
让我们猜测测试执行看起来像这样:
casperjs test --includes=loadGlobals.js test_1.js
在那个例子中 loadGlobals.js 包含这样的函数:
var fs = require('fs');
var config = {},
configFile = fs.read('config.json');
config = JSON.parse(configFile);
config.json 可能是这样的:
{
"url": "http://www.yourTestUrl.com",
"variable_1": "bla",
"variable_2": "blub",
"nextTier": {
"variable_1": "blablub"
}
}
现在你可以在test_1.js中调用config.json的变量了:
casper.start(config.url, function() {
casper.then(function() {
casper.echo(config.variable_1);
casper.echo(config.variable_2);
casper.echo(config.nextTier.variable_1);
});
})
casper.run();
您可以使用不同的配置文件,如果需要,甚至可以在测试期间覆盖它。
测试应该以页面对象模式风格编写,因此它们是高度可维护的,尤其是外包配置。
NuclearJS 我不知道,但我也会研究一下。
我尝试使用 CasperJS 使用 PhantomJS 进行无头浏览器测试,并希望有一个配置文件或其他东西来更改网站 URL、用户名密码等。所以最后我找到了 NuclearJS。你们知道任何其他完美的方法吗?如果我想从头写一个也想了解一下。
我得到了一个使用多个配置文件(用于选择器、执行、桌面、移动等)的解决方案(不完美;))。
我在执行我的 casperjs 测试时包含了一个文件,该文件为我提供了我需要的所有配置(我在那里还包含了全局函数)。
让我们猜测测试执行看起来像这样:
casperjs test --includes=loadGlobals.js test_1.js
在那个例子中 loadGlobals.js 包含这样的函数:
var fs = require('fs');
var config = {},
configFile = fs.read('config.json');
config = JSON.parse(configFile);
config.json 可能是这样的:
{
"url": "http://www.yourTestUrl.com",
"variable_1": "bla",
"variable_2": "blub",
"nextTier": {
"variable_1": "blablub"
}
}
现在你可以在test_1.js中调用config.json的变量了:
casper.start(config.url, function() {
casper.then(function() {
casper.echo(config.variable_1);
casper.echo(config.variable_2);
casper.echo(config.nextTier.variable_1);
});
})
casper.run();
您可以使用不同的配置文件,如果需要,甚至可以在测试期间覆盖它。
测试应该以页面对象模式风格编写,因此它们是高度可维护的,尤其是外包配置。
NuclearJS 我不知道,但我也会研究一下。