我正在使用量角器-黄瓜框架(量角器5.2.2和黄瓜3.2.0)。我将量角器脚本作为分布式测试执行程序在多个浏览器中运行。因此,在每个浏览器执行之后,我将在AfterAll函数中获得一个数组我需要将这些数据发送到afterLaunch。这样我可以在所有浏览器执行后从afterLaunch邮寄这些数据一次,如果我尝试从AfterAll函数邮寄这些数据,那么邮件的数量就更多了,所以我需要将每个AfterAll函数的数据合并到afterLaunch。我该怎么办?有人可以帮助我。谢谢您。
答案 0 :(得分:0)
这对我来说很好
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名称的组合。
您可以在所有hooks函数中使用this.fail,甚至可以通过将其转换为String将此数据写入文件。稍后您可以再次阅读。
var jsonStr = JSON.stringify(this.fail);
var fs = require('fs');
fs.writeFile("test_input.json", jsonStr, function (err) {
if (err) {
console.log(err);
}
});