屏幕快照未附加到报告中,但可在“诱惑结果”文件夹或故障说明屏幕快照中使用

时间:2018-09-07 13:37:40

标签: protractor automated-tests allure

在[带有量角器]的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();
        })
    });
},

2 个答案:

答案 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',
    }));
}