我正在使用量角器並嘗試使用基於時間戳的文件名創建文件。問題是,儘管我使用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