用 appium 获取页面加载时间,几个问题请教大家
目前在自己的产品和竞品上,使用appium来获取页面加载时间,想法很简单,就是点击入口元素,埋点,然后定位一个目标元素再埋点,通过两个埋点时间差来计算页面加载时间。现在做下来发现做出的时间比实际时间要长比较多,研究了下,大概有2个原因:
1.页面dump时间无法省去
2.遍历元素的时候会有等待
其中第一个问题,暂时没有比较好的解决方法,不知道大家有没有什么建议?
第二个问题,现在的想法是更改uiautomator的源码来解决,可以看到下面的源码中,在查找匹配元素的时候,每次找不到会有个固定等待时间,这个值默认是1s
但是第二个问题来了,改完以后,怎么打uiautomator.jar包。。。
protected AccessibilityNodeInfo findAccessibilityNodeInfo(long timeout) {
AccessibilityNodeInfo node = null;
long startMills = SystemClock.uptimeMillis();
long currentMills = 0;
while (currentMills <= timeout) {
node = getQueryController().findAccessibilityNodeInfo(getSelector());
if (node != null) {
break;
} else {
// does nothing if we're reentering another runWatchers()
UiDevice.getInstance().runWatchers();
}
currentMills = SystemClock.uptimeMillis() - startMills;
if(timeout > 0) {
SystemClock.sleep(WAIT_FOR_SELECTOR_POLL);
}
}
return node;
}
你这是在case里面埋点吧。应该在app的源码里埋点。 H5是不是可以在JS里面埋点?重写部分LOAD?WEBVIEW应该是可以从CONSOLE LOG取日志的。可能需要同时修改H5和手机端的代码。
没试过。。。要不你试试看呢?~不动源码的话,个人感觉都不怎么靠谱。
PS:要求不高的话,拿个秒表掐掐算了。。。网络条件不一样,时间也会不同么。。。~~~ 秒表时间误差还是存在,换录像数帧吧_^ GT应该可以
页:
[1]