我正在使用量角器并尝试使用基于时间戳的文件名创建文件。问题是,尽管我使用browser.sleep()在创建时间戳(用于创建文件名)之前等待了一段随机时间,但文件名相互仍在大约50ms内:量角器:跟踪当前规格
if (instanceCount < 4) {
var randomNumber = Math.floor(Math.random() * (10000 - 500 + 1)) + 500;
console.log("instanceCount == " + instanceCount + "... sleeping " + randomNumber + " ms");
browser.sleep(randomNumber);
}
var date = new Date();
timeStamp = date.getMonth() + 1 + '-' + date.getDate() + '-' + date.getFullYear() + '-' +
date.getHours() + 'h' + date.getMinutes() + 'm' + date.getSeconds() + 's' + date.getMilliseconds() + 'ms';
fs.writeFileSync(filepath + timeStamp, 'utf8');
instanceCount = fs.readdirSync(filepath).length;
timeStamp变量似乎忽略了browser.sleep()函数。我尝试使用一个函数返回一个承诺,但无法让它工作。这是我想出的:
var getTimestamp = function() {
return new Promise(function (resolve, reject) {
if (instanceCount < 4) {
var randomNumber = Math.floor(Math.random() * (10000 - 500 + 1)) + 500;
console.log("instanceCount == " + instanceCount + "... sleeping " + randomNumber + " seconds");
browser.sleep(randomNumber);
}
});
};
getTimestamp().then(function() {
var date = new Date();
timeStamp = date.getMonth() + 1 + '-' + date.getDate() + '-' + date.getFullYear() + '-' +
date.getHours() + 'h' + date.getMinutes() + 'm' + date.getSeconds() + 's' + date.getMilliseconds() + 'ms';
fs.writeFileSync(filepath + timeStamp, 'utf8');
},
有人可以告诉我,如果我在正确的轨道和/或如果这对流量控制/执行有意义吗?
而不是试图写一些任意的时间戳一些文件,还有其他的方式来获得书面其它更有意义的文件。你可以使用茉莉花记者,并使用合并来伪造。这将按规格书写文件。看到这个https://github.com/angular/protractor-cookbook/blob/master/jasmine-junit-reports/conf.js#L18。您还可以使用阻止代理功能分隔出日志。有关阻止代理的更多信息,请查看https://github.com/angular/blocking-proxy中的自述文件。 – cnishina
我尝试过使用jasmine-reporter,但我可以工作的唯一方法是addReporter方法,并且我已经有记者登录到我的控制台。我意识到从时间戳命名文件似乎并不是最佳实践,但我需要从此代码获得的主要功能是读取给定时间点文件夹中有多少文件。文件本身并不重要,并且将文件名作为时间戳记有助于显示执行过程中发生了什么。我已经用instanceCount变量更新了我的问题以显示我的意思 – Tom
您是否为此尝试过食谱?它应该按规格分开。如果你所有的测试都在一个文件中,这只会产生一个文件。 – cnishina