在[带有量角器]的Allure Reporters中,截取的屏幕截图仅在测试结束时显示。因此,一旦用户登录,“魅力报告”中显示的屏幕截图仅是登录页面,而不是应用程序。
这是代码,我正在使用这些代码来生成“魅力报告”。
allureReporterSetup: function() {
const 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();
})
});
},
答案 0 :(得分:0)
据我了解,量角器是用于测试Angular JS网站的工具。就像硒一样,因此与您的问题无关。
您的问题与您使用的测试框架有关。 现在发生的是您的屏幕截图可能是在测试结束时(在场景/测试之后)甚至在测试套件之后拍摄的。
您需要的是在测试步骤之后甚至在测试失败之后立即截取屏幕截图。我想在测试失败之后,会执行一些拆卸操作。问题是您需要在执行这些操作之前进行屏幕截图。这样会及时处理。
答案 1 :(得分:0)
这可能对您有帮助
onPrepare() {
var originalAddExpectationResult = jasmine.Spec.prototype.addExpectationResult;
jasmine.Spec.prototype.addExpectationResult = function () {
if (!arguments[0]) {
browser.takeScreenshot().then(function (png) {
allure.createAttachment('Screenshot', function () {
return new Buffer(png, 'base64')
}, 'image/png')();
})
}
return originalAddExpectationResult.apply(this, arguments);
};
var AllureReporter = require('jasmine-allure-reporter');
jasmine.getEnv().addReporter(new AllureReporter({
resultsDir: 'allure-results',
}));
}