1

Я попытался использовать CasperJS для тестирования браузера без использования браузера с помощью PhantomJS и хотел иметь файл конфигурации или что-то изменить URL-адрес веб-сайта, пароли пользователей и т. Д. Итак, я нашел NuclearJS. Вы, ребята, знаете какой-нибудь другой отличный способ сделать это? Если бы я хотел написать одно с нуля, хотел бы узнать об этом.Фронтальный браузер без браузера с использованием CasperJS и конфигурационных файлов?

ответ

1

У меня есть решение (не совершенное;)), которое использует несколько конфигурационных файлов (для селектора, исполнения, рабочего стола, мобильного телефона и т. Д.).
Я включаю 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 я не знал, но я также рассмотрю его.

+0

В нем говорится, что он не может найти переменную конфигурацию. – Shamendra

+0

Вы включили loadGlobals.js в выполнение теста, например, --includes = loadGlobals.js? – dasmelch

+0

Да, я включил это, как вы упоминали – Shamendra