屏幕截图未附加到报告中,但在 'allure-results' 文件夹或故障规格屏幕截图中可用
Screenshot is not attached to report but available in 'allure-results' folder or failure Specs screenshot
在Allure Reporters [with Protractor]中,正在拍摄的屏幕截图仅在测试结束时。由于 Allure 报告中显示的屏幕截图仅是登录页面,而不是用户登录后的应用程序。
这是我用来生成 Allure 报告的代码。
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();
})
});
},
据我了解,Protractor 是用于测试 Angular JS 网站的工具。它与 Selenium 非常相似,因此与您的问题无关。
您的问题与您使用的测试框架有关。
现在发生的情况是您的屏幕截图可能是在测试结束时(在 scenario/after 测试之后)甚至在测试套件之后拍摄的。
您需要的是在测试步骤之后甚至在测试失败之后立即截取屏幕截图。我想在您的测试失败后会执行一些拆卸操作。问题是您需要在执行这些操作之前截取屏幕截图。这样会及时拍下。
这可能对你有帮助
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',
}));
}
在Allure Reporters [with Protractor]中,正在拍摄的屏幕截图仅在测试结束时。由于 Allure 报告中显示的屏幕截图仅是登录页面,而不是用户登录后的应用程序。
这是我用来生成 Allure 报告的代码。
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();
})
});
},
据我了解,Protractor 是用于测试 Angular JS 网站的工具。它与 Selenium 非常相似,因此与您的问题无关。
您的问题与您使用的测试框架有关。 现在发生的情况是您的屏幕截图可能是在测试结束时(在 scenario/after 测试之后)甚至在测试套件之后拍摄的。
您需要的是在测试步骤之后甚至在测试失败之后立即截取屏幕截图。我想在您的测试失败后会执行一些拆卸操作。问题是您需要在执行这些操作之前截取屏幕截图。这样会及时拍下。
这可能对你有帮助
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',
}));
}