Я знаю, что это очень распространенный пример среды тестирования 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/'
}));
}
};