@xiaoqq
2018-07-26T09:26:43.000000Z
字数 1537
阅读 1583
自动化测试
目前Puppeteer已经可以完美实现桌面chromium内核的自动化测试,但是Puppeteer官方对于移动端的自动化测试却是一片空白。如何利用Puppeteer调试移动端的网页?这是一个很重要的问题!
Puppeteer的原理就是对chrome devtool协议进行一个高级的封装;所以,理论上,只要是chrome内核的浏览器,不管移动端还是桌面端,只要支持该协议,puppeteer就可以调用。
如何连接移动端的调试呢?
这篇文章给了一个很好的答案: https://github.com/cyrus-and/chrome-remote-interface。
参考文章:https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
要调试移动端网页,有几个坑要踩:
adb全名Andorid Debug Bridge. 顾名思义, 这是一个Debug工具.
参考文章:https://www.jianshu.com/p/5980c8c282ef
adb shell ps
或adb shell ps|grep com.xxx
命令找到需要调试的应用的PID,然后,使用adb forward tcp:9222 localabstract:webview_devtools_remote_<pid>
悲催的是,一般安卓应用内置的chrome内核都是非常低的版本,对devtool的支持非常弱,更别提运行puppeteer了。不过,对于大公司的APP,是不会直接使用安卓内核的,一般都会用腾讯的TBS内核;
TBS是当前非常流行的浏览器内核:https://x5.tencent.com/tbs/index.html,在安卓端,它的内核也是基于chromium。
如何在唯品会APP和金融APP中打开debugx5页面:
a) 唯品会APP:打开https://mxfd.vip.com/publicity?backId=wbswxtest20180607,点击debugx5 商城APP
按钮;
b) 金融APP:点击 打开当前页 商城APP
按钮, 再在唯品会APP中点击debugx5 金融APP
按钮
目前TBS内核使用的chrome版本是53,这个版本的浏览器对于puppeteer所需要的devtool协议是远远不够的,而且,桌面端和手机端的连接也不是特别稳定。
同样,IOS端的调试更具有挑战。