Protractor 我们能在量角器中从AfterAll函数中获取数据到afterLaunch吗

Protractor 我们能在量角器中从AfterAll函数中获取数据到afterLaunch吗,protractor,cucumberjs,Protractor,Cucumberjs,我正在使用量角器cucumber framework(量角器5.2.2和cucumber 3.2.0)。我正在多个浏览器中以分布式测试执行的形式运行量角器脚本。因此,每次浏览器执行后,我都会在AfterAll函数中获得一个数组。我需要将这些数据获取到afterLaunch。因此,在所有浏览器执行后,我只能从afterLaunch发送一次这些数据。如果我试图从afterLaunch功能发送这些数据,邮件数量会更多。因此,我需要将每个afterLaunch功能的数据合并到afterLaunch。我该

我正在使用量角器cucumber framework(量角器5.2.2和cucumber 3.2.0)。我正在多个浏览器中以分布式测试执行的形式运行量角器脚本。因此,每次浏览器执行后,我都会在AfterAll函数中获得一个数组。我需要将这些数据获取到afterLaunch。因此,在所有浏览器执行后,我只能从afterLaunch发送一次这些数据。如果我试图从afterLaunch功能发送这些数据,邮件数量会更多。因此,我需要将每个afterLaunch功能的数据合并到afterLaunch。我该如何做?有人能帮我吗。提前谢谢。

这对我来说很好

const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');

const page = require('../Test_pages')
let Page = new page.Pom();

const helpers = require('../helpers');
let help = new helpers.helpers();



global.before(function () {
    chai.should();
    chai.use(chaiAsPromised);
    var sf = '{}'
    this.fail = JSON.parse(sf);
    this.pass = JSON.parse(sf);
    this._pass = JSON.parse(sf);
});
afterEach(function () {

});
after(function () {

    console.log(this.fail);
    // will display all property you have added



    return Page.fail(this.fail);
    // call the fail method in pages file


});
在步骤定义文件中

this.fail[`${testsuite}_${envcode}`] = [{ "pass": false, "testcode": `${testcode}`, "global": `${globalsrc}`, "env": `${envcode}`, "testsuite": `${testsuite}`, "ext3": `${type}` }];
现在,您可以通过为每个测试创建一个属性,使用这个JSON对象来保存执行状态。我已经为每次执行创建了一个属性,并使用testsuite和envcode名称的组合

您可以在所有钩子函数中使用this.fail,甚至可以通过将数据转换为字符串将其写入文件。以后你可以再读一遍

   var jsonStr = JSON.stringify(this.fail);
    var fs = require('fs');
    fs.writeFile("test_input.json", jsonStr, function (err) {
        if (err) {
            console.log(err);
        }
    });