Я попытался использовать CasperJS для тестирования браузера без использования браузера с помощью PhantomJS и хотел иметь файл конфигурации или что-то изменить URL-адрес веб-сайта, пароли пользователей и т. Д. Итак, я нашел NuclearJS. Вы, ребята, знаете какой-нибудь другой отличный способ сделать это? Если бы я хотел написать одно с нуля, хотел бы узнать об этом.Фронтальный браузер без браузера с использованием CasperJS и конфигурационных файлов?
ответ
У меня есть решение (не совершенное;)), которое использует несколько конфигурационных файлов (для селектора, исполнения, рабочего стола, мобильного телефона и т. Д.).
Я включаю a в выполнение моего 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);
Probalby 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();
Вы можете использовать такие различные конфигурационные файлы, даже чтобы переопределить их во время тестов, если nessacary.
Тестирование должно быть написано в стиле шаблона объекта страницы, поэтому они являются очень важными, особенно с аутсорсинговой конфигурацией.
NuclearJS я не знал, но я также рассмотрю его.
В нем говорится, что он не может найти переменную конфигурацию. – Shamendra
Вы включили loadGlobals.js в выполнение теста, например, --includes = loadGlobals.js? – dasmelch
Да, я включил это, как вы упоминали – Shamendra