我需要捕获并将在测试脚本中执行的所有浏览器步骤打印到HTML报告中。我目前正在使用protractor和protractor-html-screenshot-reporter进行报告。任何人都可以建议是否可以使用任何工具来实现此目的,或者是否有用于此目的的任何api。随附所需的样品。
最佳答案
为了实现您的要求,您需要了解幕后情况以及如何发送和执行需要记录的浏览器操作。
这是一个非常简短的高级概述。
Web驱动程序,硒服务器和浏览器之间的交互通过 JSON Wire Protocol
-HTTP上的JSON进行:
另请参阅:Protractor: How It Works。
换句话说,查找元素,向元素发送键,单击等基本上是作为HTTP请求发送的,可以进行监视和记录,请参见Monitoring JSON wire protocol logs。例如,以下是Chrome服务日志:
[2.389][INFO]: COMMAND FindElement {
"sessionId": "b6707ee92a3261e1dc33a53514490663",
"using": "css selector",
"value": "input"
}
[2.389][INFO]: Waiting for pending navigations...
[2.389][INFO]: Done waiting for pending navigations
[2.398][INFO]: Waiting for pending navigations...
[2.398][INFO]: Done waiting for pending navigations
[2.398][INFO]: RESPONSE FindElement {
"ELEMENT": "0.3367185448296368-1"
}
这就是BrowserStack所做的事情。他们正在解析原始日志,并生成所有操作的用户友好报告:
在 protractor 中,最接近您要查询的功能是being currently developed下的
timeline
plugin:plugins
部分:plugins: [{
path: 'node_modules/protractor/plugins/timeline/index.js',
outdir: 'timelines'
}],
timelines/index.html
报告并查看:基本上,它使用parses the webdriver's "client" logs并构建一个时间范围,以突出显示在测试 session 期间发送的命令。您可以以此为起点,探索插件的源代码。