由于腾讯系QQ、微信等都是基于腾讯自研X5内核,不是google原生webview(其实就是进行了二次定制)。实质上也是混合应用的一种,现在很多app产品也开始流行采用X5内核作为其内嵌web浏览服务,所以掌握X5内核混合应用自动化也是app自动化测试工程师必备技能。
夜神等模拟器是intel的X86架构,很多app安装不了,比如微信、qq,建议最好是一台真实的手机来做。
X5内核应用自动化方式和普通混合应用有非常多的差异,接下来以微信小程序举例介绍怎么来开展X5内核的自动化
依赖的软件环境:
1、微信版本用当前使用的就好
2、uc-devtools工具用来查看WebView页面定位(uc-devtools下载链接)
3、手机端和PC端安装chrome浏览器(注意版本最好对应一致)
4、android手机(5.0+版本)
5、chromedriver(要对应的版本)
6、appium-desktop
步骤:
1、打开微信,在任意窗口输入:debugx5.qq.com
在打开的界面中选择信息->勾选是否打开TBS内核Inspector调试功能
2、手机通过usb连接到电脑,打开USB调试模式,通过adb devices命令检测到设备
3、uc-devtools工具用来查看WebView页面定位
可以看到当前就是一个html页面,我们可以采取常规web元素定位方式来定位元素
4、打开微信->发现->搜一搜,搜索柠檬班软件测试,点击对应小程序进入到主页面
5、微信/qq有很多的进程,我们要确定当前web页面是位于哪个进程中:
确定我们当前微信的页面运行在com.tencent.mm:toolsmp中
6、X5内核应用desired_caps自动化配置:
#支持X5内核应用自动化配置
'recreateChromeDriverSessions':True, #当移除非 ChromeDriver webview时,终止掉 ChromeDriver 的 session
#ChromeOptions使用来定制启动选项,因为在appium中切换context识别webview的时候,
#把com.tencent.mm:toolsmp的webview识别成com.tencent.mm的webview.
#所以为了避免这个问题,加上androidProcess: com.tencent.mm:toolsmp
'ChromeOptions':{
'androidProcess':'com.tencent.mm:toolsmp'},
'browserName':