javascript - 为 Protractor 设置 Screenshot Reporter

标签 javascript selenium jasmine screenshot protractor

由于我是自动化测试和 Protractor 的新手,我在测试中设置时遇到了一些问题。

根据guide ,每次我创建一个新的截图记者实例时,我都必须传递一个目录路径。对,这意味着每次我在我的 spec 文件中创建一个新实例?

此外,还有一些功能可以截取我跳过的和失败的测试的屏幕截图。我应该在哪里使用 takeScreenShotsForSkippedSpecstakeScreenShotsOnlyForFailedSpecs?在我的配置文件中?

这是我的onPrepare:

onPrepare: function () {
        browser.driver.manage().window().maximize();
        global.dvr = browser.driver;
        global.isAngularSite = function (flag) {
            browser.ignoreSynchronization = !flag;
        }
        jasmine.getEnv().addReporter(new ScreenShotReporter({
            baseDirectory: '/tmp/screenshots',
            takeScreenShotsForSkippedSpecs: true,
            takeScreenShotsOnlyForFailedSpecs: true
        }));

最佳答案

注意:如果您使用的是 jasmine2,请使用 protractor-jasmine2-screenshot-reporter .


对于 jasmine1:

我一直在使用 protractor-html-screenshot-reporter 成功使用包裹。它基于 protractor-screenshot-reporter,但也提供了一个漂亮的 HTML 报告。

这是我在 Protractor 配置中的内容:

var HtmlReporter = require("protractor-html-screenshot-reporter");

exports.config = {
    ...

    onPrepare: function () {
        // screenshot reporter
        jasmine.getEnv().addReporter(new HtmlReporter({
            baseDirectory: "test-results/screenshots"
        }));
    },

    ...
} 

运行测试后,您会得到一个包含(示例)的 HTML 文件:

enter image description here

您可以单击“查看”以在浏览器中查看特定于测试用例的屏幕截图。

关于javascript - 为 Protractor 设置 Screenshot Reporter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27866147/

相关文章:

java - 有没有办法将wireshark http跟踪导入到java中?

unit-testing - Angular 2 TestBed,没有依赖注入(inject)的模拟方法

javascript - 使用 Jest 时如何访问外部 javascript 方法/对象?

angular - 无法绑定(bind)到 'ngModel',因为它不是 'textarea' 的已知属性

javascript - 使用nodejs加载动态html

java - 如何在html中选择嵌套的web元素?

javascript - 向气泡图/Highcharts 添加自定义工具提示

python - 在 Selenium 中关闭并打开新浏览器

javascript - D3.js 数据源切换时的过渡条形图

javascript - 监听DOM事件(具体属性)