Ошибка веб-драйвера Chrome недоступна с помощью транспортира jasmine Framework - PullRequest
0 голосов
/ 04 декабря 2018

Я знаю, что это очень распространенный пример среды тестирования protactor end2end.Я уже много искал, но никогда не нашел подходящего ответа для этого.Я использую Protractor Framework Jasmine Runner для тестирования моего углового приложения.Прямо сейчас у меня есть 10 классов sppec.ts.Мой тест выполняется с использованием сервера селена.Проблема в том, что после запуска 4 тестовых случаев браузер неожиданно перестал работать, и я получил следующее сообщение в jenkins.Я прочитал несколько предыдущих работ, где у всех есть эта проблема для всего теста.Но я получил эту ошибку только один раз для случайной спецификации.Теперь Как я могу проверить это перед началом теста, чтобы, если это произойдет, тогда тест будет проигнорирован.

Мой пример теста:

describe('010 check that user option will work', function () {

it('user can click on main page', async () => {

    // 1.
    await loginIntoPage(LoginPage.url, Constants.CORRECT_USERNAME, Constants.CORRECT_PASSWORD, LoginPage.englishLanguageMenuItem);
    await leftTopMenuItem.isDisplayed();

    // 2.
    await click.onto(languageButton);
    await expect(languageDropdown.isDisplayed);

    // 3.
    await click.onto(key);
    await expect(leftTopMenuItem.getText()).toBe('[A01User]');

    // 4.
    await click.onto(ContentPage.user);
 });

});

Файл конфигурации транспортира

    const JasmineConsoleReporter = require('jasmine-console-reporter');
const reporter = new JasmineConsoleReporter({
    colors: 1,           // (0|false)|(1|true)|2
    cleanStack: 1,       // (0|false)|(1|true)|2|3
    verbosity: 4,        // (0|false)|1|2|(3|true)|4|Object
    listStyle: 'indent', // "flat"|"indent"
    timeUnit: 'ms',      // "ms"|"ns"|"s"
    timeThreshold: { ok: 500, warn: 1000, ouch: 3000 }, // Object|Number
    activity: false,     // boolean or string ("dots"|"star"|"flip"|"bouncingBar"|...)
    emoji: true,
    beep: true
});

var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');

exports.config = {
  allScriptsTimeout: 11000000,
  specs: [
    './e2e/tests/**/*.e2e-spec.ts'
  ],
    multiCapabilities: [
        {
            'browserName' : 'chrome',
            'chromeOptions': { 'args' : ['--disable-extensions']},
            'shardTestFiles': true,
            'maxInstances': 1
        },
        {
            'browserName' : 'firefox',
            'maxInstances': 1
        },
        {
            'browserName': 'internet explorer',
        },
    ],
    seleniumAddress: 'http://192.168.178.118:14444/wd/hub',
    baseUrl: 'base url',
    framework: 'jasmine',
    jasmineNodeOpts: {
        isVerbose: true,
    showColors: true,
        defaultTimeoutInterval: 2000000 // 32 minutes === 2000000msec defaultTimeoutInterval is a timeout from jasmine for each it
    },
    useAllAngular2AppRoots: true,
    beforeLaunch: function() {

    },
    onPrepare: function() {

        require('ts-node').register({
            project: 'e2e/tsconfig.json'
        });

        jasmine.getEnv().addReporter(reporter);

        var AllureReporter = require('jasmine-allure-reporter');
        jasmine.getEnv().addReporter(new AllureReporter({
            resultsDir: 'allure-results'
        }));
        jasmine.getEnv().afterEach(function(done){
            browser.takeScreenshot().then(function (png) {
                allure.createAttachment('Screenshot', function () {
                    return new Buffer(png, 'base64')
                }, 'image/png')();
                done();
            })
        });

        jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
            savePath: './test/jasmine-results/'
        }));

  }
};

1 Ответ

0 голосов
/ 12 апреля 2019

Я столкнулся с подобной проблемой.Я нашел несколько решений, которые нужно исправить в сборках Docker, но мое не было сборкой Docker.Нашел способ предоставить те же параметры в конфигурации Chrome:

Добавлено следующее в protractor.conf.js

capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
        'args': ['--disable-web-security',
                 '--disable-gpu',
                '--disable-infobars',
              '--disable-dev-shm-usage']
    }
  },

Последний параметр '--disable-dev-shm-Использование'добился цели для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...