Запуск тестов 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);
}
};
Ответ 4
Мы просто написали блог и модули с открытым исходным кодом для этого.
http://www.blog.wishtack.com/#!Cross-browser-testing-test-automation-with-Protractor-and-Browserstack/cuhk/554b3b5f0cf27313351f1163
мас-транспортир-шаблонные
мас-транспортир-бегун
Wt-транспортир-Utils