性能测试 - 如何在 Javascript 中捕获用户操作中消耗的时间

performance testing - How to capture time consumed in a user action in Javascript?

本文关键字:操作 用户 时间 Javascript 性能测试      更新时间:2023-09-26

在使用 ExtJs 创建的 RIA 应用程序中,我们需要捕获用户操作所消耗的时间。

例如,用户单击"打开"按钮打开窗口,则需要捕获打开窗口所花费的时间。

我们尝试使用Selenium IDE,但它只记录操作并执行它们,并且不记录命令中消耗的时间。

我们还尝试使用浏览器的"分析器"功能(在操作前开始分析,在操作结束后停止分析),但这是手动的。

因此,有人可以指导 - 如何以自动方式捕获 Javascript 中的用户操作所花费的时间?

提前感谢您的任何帮助。

这是一个全局事件跟踪函数的粗略草图:

(function() {
var pairs = {};
eventLogger = function(e) {
    var ts = new Date().getTime();
    if (pairs[e]) {
        var taken = ts - pairs[e],
        img = new Image();
        img.onload = function() { };
        img.src = '/path/to/logger?evt=' + encodeURIComponent(e) + '&t=' + encodeURIComponent(taken);
        delete pairs[e];
    } else {
        pairs[e] = ts;
    }
}
}());

它匹配事件名称对;第一个启动计时器,第二个发出服务器请求以记录该事件所花费的时间。

然后,您将记录如下事件:

eventLogger('loadContacts');
// start code that loads contacts
// ...
// later
eventLogger('loadContacts'); // done loading

它不区分开始和停止事件,因此,如果开始和停止时间可能重叠,则可能需要进行一些调整。