我正在为Protalactor的Angular 2/4应用程序编写我的第一个E2E测试。这样可以正常加载页面并填充输入字段。
一个大问题是,在每次加载页面后,测试会在下一个操作完成后等待大约30秒。
例如,我使用browser.get()调用应用程序的登录页面。该页面显示在测试浏览器中,30秒后,用户和密码将填入输入字段。
这是我的protractor.conf.js:
let SpecReporter = require('jasmine-spec-reporter').SpecReporter;
exports.config = {
allScriptsTimeout: 60000,
getPageTimeout: 60000,
suites: {
mandators: './e2e/mandators/**/*.e2e-spec.ts'
},
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
showTiming: true,
isVerbose: false,
includeStackTrace: false,
defaultTimeoutInterval: 120000,
print: function() {}
},
useAllAngular2AppRoots: true,
beforeLaunch: function() {
require('ts-node').register({ project: 'e2e' });
},
onPrepare: function() {
browser.manage().window().maximize();
jasmine.getEnv().addReporter(new SpecReporter());
}
};
长时间等待的原因是什么?这是正常行为吗?
答案 0 :(得分:0)
我遇到了同样的问题。在我的情况下,问题是在源代码中,我使用setTimeout()30秒。并且Protractor一直等待计时器的结束,然后才开始运行测试场景。 使用 zone.runOutsideAngular()
解决了这个问题