0

我在我做的飞镖测试

setUp() async {
  vm_service.VmService vms = await vmServiceConnectUri(vmUrl);
  vmsStartTime = (await vms.getVMTimelineMicros()).timestamp;
  await flutterDriver.startTracing()
}
tearDown() async {
  vmsEndTime = (await vms.getVMTimelineMicros()).timestamp;
  Timeline timeline = await driver.stopTracingAndDownloadTimeline();
}

每个测试运行大约 30 秒。出于某种原因,在测试之后我有类似的东西

vmsStartTime = 4323069605
vmsEndTime =   4323088753

在时间轴第一个事件 timestampMicros 是

"ts":                      4318344424

还:

"timeOriginMicros": 4318344424,
"timeExtentMicros": 2080190

我使用 vmsStartTest 和 vmsEndTest 过滤掉与每个测试相关的事件,并且由于此类问题,我错过了时间线上与测试相关的所有事件。请帮助我了解为什么会发生这种情况以及如何处理?

4

1 回答 1

0

目前使用traceAction似乎给出了最好的结果。所以我在测试期间所做的每一个动作都是一个主题traceAction。每个 next 的时间线traceAction都附加到全局时间线 json 对象(附加事件并计算持续时间为customTimelineJson["timeExtentMicros"] = timeline.json["timeOriginMicros"] + timeline.json["timeExtentMicros"] - customTimelineJson["timeOriginMicros"]; 这有助于将大多数事件保留在时间线中。测试开始时间映射到时间线timestampMicros中第一个事件中的第一个事件. 测试结束取自最后一个时间轴的最后一个事件traceAction.timeOriginMicros取自第一个traceAction时间轴的第一个事件

于 2020-07-28T12:59:56.110 回答