检索事件时间
Appium 具有检索有关启动信息和命令长度的时间信息的能力。这是一项高级功能,由使用 appium:eventTimings
功能控制(将其设置为 true
以记录事件时间)。
启用此功能后,GET /session/:id
响应(即对 driver.getSessionDetails()
或类似响应,具体取决于客户端)将使用 events
属性进行修饰。这是该 events
属性的结构
{
"<event_type>": [<occurence_timestamp_1>, ...],
"commands": [
{
"cmd": "<command_name>",
"startTime": <js_timestamp>,
"endTime": <js_timestamp>
},
...
]
}
换句话说,events
属性有 2 种自己的属性
- 属性是事件类型的名称
commands
属性
事件类型名称的属性对应于该事件发生时的戳记数组。它是一个数组,因为事件可能在会话过程中多次发生。事件类型的示例包括
newSessionRequested
newSessionStarted
(各个驱动程序将定义自己的事件类型,因此我们这里没有详尽的列表可供分享。最好从真实会话中实际获取其中一个响应来检查可能的事件类型。)
commands
属性是一个对象数组。每个对象都有 Appium 内部命令的名称(例如 click
),以及命令开始处理的时间和完成处理的时间。
借助这些数据,您可以计算事件之间的时间,或严格的事件时间表,或有关特定类型命令的平均长度的统计信息,等等。
您只能接收在调用 /session/:id
时发生的事件的数据,因此获取整个会话数据的最佳时间是在退出会话之前。
Appium 团队维护了一个事件计时解析器工具,该工具可用于从事件计时输出生成各种类型的报告:appium/appium-event-parser。
添加自定义事件¶
待办事项
由于这些文档仍在构建中,因此以下段落中指向命令的链接尚不起作用。
您可以添加将在事件计时数据中显示的自定义事件。您可以使用 日志事件 API 向 Appium 服务器发送自定义事件名称,服务器将存储时间戳。稍后可以使用 获取事件 命令来检索已命名事件的时间戳。