Запуск тестов Protractor на автоматическом режиме Browserstack Automate

Я разрабатываю приложение AngularJS и хочу провести тестирование конца-конца с помощью Protractor. Я хотел бы воспользоваться набором тестовых браузеров, доступных в браузере, и запускать тесты на Browserstack Automate вместо локального сервера Selenium.

Как настроить систему для запуска этих тестов?

Ответ 1

Транспортир из версия 3.0.0 добавил встроенная поддержка для браузера.

Вам просто нужно добавить следующие два параметра в conf.js, чтобы запустить тест в браузере:

browserstackUser: '<username>'
browserstackKey: '<automate-key>'

Ваше имя пользователя и ключ автоматизации можно найти здесь после входа в свою учетную запись.

Следовательно, скажем, вы хотите запустить тест на Chrome 50/OS X Yosemite, ваш conf.js должен выглядеть примерно так:

exports.config = {
  specs: ['spec.js'],

  browserstackUser: '<username>',
  browserstackKey: '<automate-key>',

  capabilities: {
    browserName: 'Chrome',
    browser_version: '50.0',
    os: 'OS X',
    os_version: 'Yosemite'
  },    
};

Если вы хотите запускать тесты в параллельно в разных комбинациях браузера и ОС, вы можете использовать multiCapabilities, как показано ниже:

exports.config = {
  specs: ['spec.js'],

  browserstackUser: '<username>',
  browserstackKey: '<automate-key>',

  multiCapabilities: [
    {
        browserName: 'Safari',
        browser_version: '8.0',
        os: 'OS X',
        os_version: 'Yosemite'
    },
    {
       browserName: 'Firefox',
       browser_version: '30.0',
       os: 'Windows',
       os_version: '7'
    },
    {
       browserName: 'iPhone',
       platform: 'MAC',
       device: 'iPhone 5S'
    }
  ]
};

Некоторые полезные ссылки:

  • Генератор кода - Помогает вам настроить возможности тестирования для различных различных комбинаций браузера и ОС, особенно мобильных устройств.

  • Пример Проект Github для Protractor-BrowserStack. Это должно помочь вам приступить к работе.

Ответ 2

ПРИМЕЧАНИЕ. Эти инструкции относятся только к версиям Protractor старше версии 3.0. Protractor 3.0 включает встроенную поддержку браузера.


Необходимые условия

Вам нужно будет node и npm. Проверьте версию node на node --version, чтобы убедиться, что она больше, чем v0.10.0.

Готов?

1. Установите транспортир

Используйте npm для установки Protractor глобально с помощью

npm install -g protractor

Если вы получаете ошибки, вам может потребоваться выполнить указанную выше команду как sudo.

Вот более подробный учебник по установке и использованию Protractor.

2. Установите браузер веб-браузера Browserstack

EDIT: @elgalu указал в комментариях, что этот шаг не требуется. По-видимому, туннель BrowserStackLocal (настроенный на шаге 4) достаточно.

Следуя Инструкции по настройке браузера для настройки node.js, установите веб-драйвер seleniun:

npm install -g browserstack-webdriver

3. Настройка конфигурации транспортировщика

Создайте файл protractor.conf.js(см. документацию для поддерживаемые BrowserStack возможности):

exports.config = {
  capabilities: {
    'browserstack.user' : 'my_user_name',
    'browserstack.key' : 'my_secret_key',

    // Needed for testing localhost
    'browserstack.local' : 'true',

    // Settings for the browser you want to test
    // (check docs for difference between `browser` and `browserName`
    'browser' : 'Chrome',
    'browser_version' : '36.0',
    'os' : 'OS X',
    'os_version' : 'Mavericks',
    'resolution' : '1024x768'
  },

  // Browserstack selenium server address
  seleniumAddress: 'http://hub.browserstack.com/wd/hub',

  // Pattern for finding test spec files
  specs: ['test/**/*.spec.js']
}

Измените имя пользователя и секретный ключ на те, которые указаны на странице "Автозагрузка браузера". Если вы вошли в Browserstack, в инструкциях по настройке node.js будет указан ваш пользователь и ключ в примерах, и вы можете просто скопировать туда javascript.

На той же странице также есть инструмент для генерации кода для разных настроек браузера теста.

4. Загрузите и запустите BrowserStackLocal

Загрузите двоичный файл BrowserStackLocal с node.js.

Внесите следующие изменения в приведенную ниже команду и запустите двоичный файл, чтобы открыть туннель Browserstack, необходимый для тестирования.

  • Измените секретный ключ в команде. Опять же, your_secret_key будет автоматически заменяться в руководстве node.js, если вы вошли в браузерный столбец.
  • Измените номер порта, чтобы он соответствовал порту, на котором размещены ваши файлы AngularJS на локальном хосте. В примере используется порт 3000.

    ./BrowserStackLocal your_secret_key localhost,3000,0
    

5. Запустите тесты

Когда все готово для тестирования, запустите свои тесты:

protractor protractor.conf.js

Вы можете просмотреть тестовый прогон на Browserstack Automate и даже увидеть обновление в реальном времени скриншота тестового браузера.

Ответ 3

Привет! Чтобы выполнить только тест с браузером, вам может потребоваться пропустить Шаг 4 из ответа Нико Нимана, а в вашем conf.js у вас должно быть что-то вроде того, что у меня есть (+ отчет), затем выполните Шаг 5:


    var HtmlReporter = require('protractor-html-screenshot-reporter');
var reporter=new HtmlReporter({
    baseDirectory: './protractor-result', // a location to store screen shots.
    docTitle: 'Report Test Summary',
    docName:    'protractor-tests-report.html'
});

// An example configuration file.
exports.config = {
  // The address of a running selenium server.
  seleniumAddress: 'http://hub.browserstack.com/wd/hub',

  // Capabilities to be passed to the webdriver instance.
  capabilities: {
    'browserName': 'chrome',
    'version': '22.0',
    'browserstack.user' : 'user_name',
    'browserstack.key' : 'user_key',
    'browserstack.debug' : 'true'

  },

  // Spec patterns are relative to the current working directly when
  // protractor is called.
  specs: ['./specs/home_page_spec.js'],

  // Options to be passed to Jasmine-node.
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000
  },
 onPrepare: function() {
        jasmine.getEnv().addReporter(reporter);
      }

  };