我们开发了一个基于Sencha Ext.JS框架的复杂单页面应用程序。 有很多"页面"在应用程序中动态更改而不刷新浏览器的URL。所有用户的交互和内容更改都是动态创建和销毁的。
我们现在想要测量客户端稳定性和性能。测试应侧重于客户端行为和响应能力。我们不需要测试服务器端响应时间 - 测试期间响应时间相同。
我看到的所有工具通常都是处理XHR响应时间,通常基于每个URL的加载时间,这与我们的案例无关 - 因为相同的URL正在继续并且随着时间的推移而工作。
有关这种测试的良好实践和工具的任何建议吗?
答案 0 :(得分:2)
如果您认为AJAX监控和页面加载时间对您没有帮助,那么 我可以建议你可以使用事务监控。它可以通过测量两个状态或两个页面之间的时间来完成。
使用#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#define ARRAY_SIZE 64
typedef struct {
char arr[ARRAY_SIZE];
int length;
} Word;
typedef struct{
int Tab[ARRAY_SIZE];
int length;
} ArrInt;
typedef struct {
ArrInt states;
Word symbol;
int initState;
} Sym;
int main(int argc, char **argv)
{
FILE *f;
char buf[BUFSIZ];
char *p;
Sym var;
memset(&var, 0, sizeof(var));
if (argc < 2) {
return -1;
}
f = fopen(argv[1], "r");
if (!f) {
printf("fopen failed, errno = %d\n", errno);
return errno;
}
/* parse int */
p = fgets(buf, sizeof(buf), f);
if (!p)
return ferror(f);
while (p) {
var.states.Tab[var.states.length++] = strtol(p, &p, 10);
if (*p == '\n')
break;
if (*p++ != '|') {
fprintf(stderr, "Bad format");
return -1;
}
}
/* parse char */
p = fgets(buf, sizeof(buf), f);
if (!p)
return 1;
while (p) {
var.symbol.arr[var.symbol.length++] = *p++;
if (*p == '\n')
break;
if (*p++ != '|') {
fprintf(stderr, "Bad format");
return -1;
}
}
/* parse char */
p = fgets(buf, sizeof(buf), f);
if (!p)
return 1;
var.initState = atoi(p);
return 0;
}
:
console.time
使用 console.time('page_name');
// Anything goes here
console.timeEnd('page_name');
performance.now
使用Atatus服务
如果您正在寻找服务,可以尝试使用https://www.atatus.com/来帮助您实时衡量交易。
在atatus中,您可以通过
衡量交易或状态 var start = window.performance.now();
...
var end = window.performance.now();
var time = end - start;
答案 1 :(得分:1)
您可以使用像Selenium这样的工具来自动化客户端行为并测量响应时间。