Как запустить транспортир

Я новичок в AngularJS. Я пытаюсь учиться и выполнять некоторые сквозные тесты с помощью Protractor. Я просматриваю предоставленную информацию здесь. Я застрял, когда попал в ту часть, которая говорит "Run with protractor myConf.js".

Является ли транспортир программой командной строки? Или что? Я пытаюсь определить, в какой среде мне нужно запустить "protractor myConf.js" внутри. Я НЕ хочу устанавливать транспортир по всему миру. Я хотел бы запустить модуль в локальном контексте. Это вариант?

Спасибо,

Ответ 1

Вот документы по началу работы:

https://github.com/angular/protractor/blob/master/docs/getting-started.md

На вашем компьютере должен быть установлен node.js, а также пакет узлов npm. После того, как вы установили эти две вещи, вы можете следовать остальным указаниям в документации выше.

Установка и запуск Protractor займет всего около 5-10 минут. Дайте мне знать, если вы все еще застряли.

Ответ 2

Вам нужно запустить его через node.

Итак, из базы вашего проекта;

node node_modules\protractor\bin\protractor test\myConf.js

Ответ 3

Вы можете установить Protractor глобально через:

$ npm install -g protractor

Затем он должен быть доступен в командной строке (Windows/Linux)

$ protractor protractor.conf.js

Для установки только для текущего проекта:

$ npm install protractor --save-dev

Его можно запустить с помощью node_modules, как это (Windows/Linux):

$ ./node_modules/.bin/protractor protractor.conf.js

Вы можете добавить его в свой package.json для упрощения работы:

"scripts": {
    "test": "./node_modules/.bin/protractor protractor.conf.js"
}

Затем позже:

$ npm test

Ответ 4

Вы должны использовать npm-run-all (или concurrently, parallelshell), потому что он имеет больший контроль над командами запуска и убийства.

Как только npm-run-once, protractor, http-server установлены локально, вы можете изменить package.json следующим образом:

scripts: {
  "webdriver-start": "./node_modules/protractor/bin/webdriver-manager update && ./node_modules/protractor/bin/webdriver-manager start",
  "protractor": "./node_modules/protractor/bin/protractor ./tests/protractor.conf.js",
  "http-server": "./node_modules/http-server/bin/http-server -a localhost -p 8000",
  "python-example": "python -m SimpleHTTPServer",
  "test1": "npm-run-all -p -r webdriver-start http-server protractor",
  "test2": "npm-run-all -p -r webdriver-start python-example protractor"
}

-p = Выполнять команды параллельно.

-r = Убить все команды, когда один из них заканчивается нулем.

Запуск npm run test1 запустит драйвер Selenium, запустит HTTP-сервер (чтобы обслуживать ваши файлы) и запустил теги транспортира. После завершения всех тестов он закроет http-сервер и драйвер selenium.

Ответ 5

Вот пример использования Typescript, но если это не ваш случай, вы можете просто удалить все вещи tsc. Настройте секцию package.json сценариев, чтобы выглядеть так:

  "scripts": {
    "postinstall": "node node_modules/protractor/bin/webdriver-manager update",
    "pretest": "npm run tsc",
    "test": "npm run eslint && npm run protractor",
    "eslint": "node node_modules/eslint/bin/eslint.js '*.js' 'test/**/*.js' 'test/**/*.ts'",
    "protractor": "node node_modules/protractor/bin/protractor",
    "start": "node node_modules/protractor/bin/webdriver-manager start",
    "tsc": "node node_modules/typescript/bin/tsc"
  }

и запустите npm start в одном терминале и npm test в другом.

Ответ 6

У меня есть генератор кода, который создает пустой проект транспортира. Инструкции должны быть просты:

https://npmjs.org/package/generator-protractor

Ответ 7

Я думаю, что лучший способ запустить protractor - установить его локально в ваш проект, а затем запустить его с помощью сценариев npm.

Резервное копирование на один шаг, сам нью использует иерархию на основе файловой системы для поиска исполняемых модулей. Если вы наберете npm bin npm скажет вам, что первое место будет искать, чтобы найти что-то исполняемое (например, [project]/node_modules/.bin). Если вы включите транспортир в свой пакет package.json, когда вы сделаете установку npm, protractor добавит символическую ссылку в ваш каталог .bin как для транспортиратора, так и для webdriver-manager.

Существует несколько способов использования этой информации для выполнения транспортира. Правильный ~~ лучший способ, я думаю, это использовать скрипты npm. Когда вы используете npm-скрипты, npm автоматически загружает транспортир из локального каталога .bin.

Здесь пример

package.json
{
  "name": "awesomeapp",
  "version": "1.0.0",
  "devDependencies": {
    "protractor": "latest"
  },
  "scripts": {
    "test-e2e": "protractor protractor.conf",
    "selenium": "webdriver-manager start"
  }
}

Итак, теперь вы можете запустить ваш сервер selenium с помощью npm run selenium, затем запустите ваши тесты транспортира с помощью npm run test-e2e.

Это также кросс-платформа, поэтому, если вы используете Mac или Windows, вы будете защищены в любом случае.

ПРИМЕЧАНИЕ.. Вы можете делать вещи в этих сценариях, которые не являются кросс-платформой (npm docs), поэтому, если для вас важна кросс-платформа, и вы хотите сделать что угодно, я бы рекомендовал использовать shelljs.

P.P.S. Не хотел загромождать вышеприведенную точку, но npm также имеет предварительные и пост-крючки, чтобы вы могли обновлять и запускать селен с помощью одной команды.

"scripts": {
    "preselenium": "webdriver-manager update",
    "selenium":    "webdriver-manager start"
}

Теоретически Windows должна поддерживать &&, чтобы вы могли это сделать, но ymmv...

"scripts": {
  "selenium":    "webdriver-manager update && webdriver-manager start"
}

Ответ 8

Если у вас есть пакет в config.js, попробуйте

suites: {

  TESTCASES_RELATED_TO_SUITE1: ['TEST_CASES/Suite1/**/*spec.js'],
  TESTCASES_RELATED_TO_SUITE2: ['TEST_CASES/Suite2/**/*spec.js']

},

Тесты могут быть выполнены из командной строки, как показано ниже:

<path>protractor config.js --suite TESTCASES_RELATED_TO_SUITE1

Это выполнит только один набор тестов.

Ответ 9

Да, можно запустить транспортир, используя следующую команду:

npm install protractor

и вы можете получить к нему доступ:

./node_modules/.bin/protractor conf.js

Для получения дополнительной информации посетите: Проталкиватель - сквозное тестирование для AngularJS. Это очень хорошее место для начала.

Ответ 10

Я использую IntelliJ для испытаний транспортировщика. Также обратите внимание, что для этого требуется IntelliJ Ultimate Edition вместе с установками node.js и транспортировками.

Здесь вы можете найти подробности Настройка трактатора на IntelliJ

Ответ 11

Сначала вам нужно установить node.js из https://nodejs.org/en/download/, а затем установить транспортир, используя "npm install -g transractor", Это установит транспортир по всему миру. Я столкнулся с проблемами, когда локально устанавливал транспортир. Лучше попробуйте установить его по всему миру. Или вы можете предоставить все свои зависимости в файле package.json, как показано ниже:

{
  "dependencies": {
    "protractor": "4.0.3",//any latest versions of these.
    "protractor-jasmine2-screenshot-reporter": "0.3.2",
    "jasmine-terminal-reporter": "1.0.3"
  },
  "scripts": {
    "postinstall": "node node_modules\\protractor\\bin\\webdriver-manager update"
  }
}

Существуют зависимости для отчета о результатах тестирования, а также в вышеупомянутом файле package.json. И вам нужно запустить обновление webdriver-manager. Это вспомогательный инструмент, чтобы получить экземпляр работающего сервера selenium.

Вы можете поместить все в файл package.json и запустить "npm install" для установки всех зависимостей. Это создаст вам папку node_modules.

Теперь создайте конфигурационный файл ex: conf.js. Это может быть что-то вроде этого.

// An example configuration file. There are the reporters which are used to give the test results. There are many reporters. You can use which ever is convenient. The below reporters are for example to show how to configure them.
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
var JasmineTerminalReporter = require('jasmine-terminal-reporter');

//To get the Current Date and Time. To make the test output more clear, you can give date.
var currentDate = new Date(),
    currentHoursIn24Hour = currentDate.getHours(),
    month = currentDate.getMonth() + 1,
    totalDateString = currentDate.getDate() + '-' + month + '-' + currentDate.getFullYear() +
        '-' + currentHoursIn24Hour + 'h-' + currentDate.getMinutes() + 'm';

var htmlReporter = new HtmlScreenshotReporter({
    pathBuilder: function (currentSpec, suites, browserCapabilities) {
        'use strict';
        return currentSpec._suite.description + totalDateString + '/' + browserCapabilities.get('browserName') + '/' + currentSpec.description;
    },
    dest: 'TestOutput',
    cleanDestination: false,
    showSummary: true,
    showQuickLinks: true
});


exports.config = {

    directConnect: true,//If you make this flag true, it connects the browser directly.
    capabilities: {
        'browserName': 'chrome'
    },

    //this is to bring up the test dependencies. Some kind of setup. run once
    beforeLaunch: function () {
        'use strict';
        return new Promise(function (resolve) {
            htmlReporter.beforeLaunch(resolve);
        });
    },

    //once per capabilities.
    onPrepare: function () {
        jasmine.getEnv().addReporter(htmlReporter);
        jasmine.getEnv().addReporter(new JasmineTerminalReporter({
            isVerbose: true,
            showColors: true
        }));
    },

    //A callback function called once all tests have finished running and
    // the WebDriver instance has been shut down.
    afterLaunch: function (exitCode){
        return new Promise(function(resolve){
            htmlReporter.afterLaunch(resolve.bind(this, exitCode));
        });
    },

    getPageTimeout: 120000,
    allScriptsTimeout: 120000,
    specs: ['../TestScripts/*.js']//This contains the test files.
};

Как только вы закончите настройку, создайте тестовый файл. Тесты написаны с использованием структуры жасмина, которая содержит "описать" и "это". "описать" проведет "это", в котором есть тесты. Вы можете пройти через это: http://www.protractortest.org/#/

Теперь запустите тест с помощью "protractor conf.js". Это запустит тесты и сгенерирует отчеты также в папке TestOutput, которую мы установили в файле конфигурации.

Ответ 13

Начиная

Мы рассмотрели Protractor с Chrome без головы, несколько браузеров, интегрированных с Sauce Labs. Давайте посмотрим на отчеты о выполнении автоматизации тестирования, как мы можем интегрировать их.

потрясающий QA

Обязательное условие

npm распространяется с Node. js-, что означает, что при загрузке Node.js на вашем компьютере автоматически устанавливается npm.

1. Install nodejs

Во-первых, установите транспортир глобально в вашей системе: установите транспортир как зависимость для разработки:

2. run npm install -g Protractor

3. run npm install protractor --save-dev

Чтобы установить и запустить автономный Selenium Server вручную, используйте инструмент командной строки webdriver-manager, который поставляется вместе с Protractor. Это установит сервер и ChromeDriver.

4. run npm install -g webdriver-manager

5. run updated webdriver-manager

Это запустит сервер. Вы увидите много выходных журналов, начиная с INFO. Последняя строка будет "Информация - запущен org.openqa.jetty.jetty.Server".

5. run start webdriver-manager

Оставьте сервер включенным во время проведения тестовых сессий. В вашем конфигурационном файле установите seleniumAddress на адрес работающего сервера. По умолчанию это http://localhost: 4444/wd/hub.

6. Finally run your script - Protractor<location of your config file>conf.js

Сборка и тестирование

Оформить заказ GitHub: https://github.com/shahing/Protractor-Web-Automation