android webview测试

android webview测试

android 纯web页面(在浏览器可以打开的应用)测试

 

native app :优点,原生应用,sdk开发和安卓系统契合度高性能好。缺点,功能更新依赖应用包更新,步骤繁琐且耗时,开发成本高。

Hybrid app:优点,混合应用,原生和web结合,部分功能可随时更新不依赖应用包更新。缺点,需要网络。

web app: 纯web应用,优点,可随时更新。缺点,需要网络。

 

 

 

 国内镜像地址:https://npm.taobao.org/mirrors/chromedriver/

通过以下两个命令可以分别获得browser的包名 和相应的版本

 如果是Chrome的话,把browser换成chrome输入就行

遇到的问题1:

遇到的问题2:browser的版本查出来的是被改写了的,所以其实实际的话是需要启动appium sever后通过如下代码运行下,这代码里除了platformVersion需要根据实际安卓版本改一下其他都不用动(如果一两次没成功,多试几次就会成功),再去appium sever里看下日志提供出来的版本信息。

 数字小的版本支持数字大的版本,如51.0能支持52.0,不过其实也可以不下,因为appium在默认路径下会自带一个chrome driver,这个默认路径就在版本信息前面几行

 

 所以当你不想使用默认路径的chrome driver,那么可以:

  1. 下其他版本的Chrome driver 到默认路径下,这种不需要配置框出的
  2. 下其他版本的Chrome driver 到其他路径下,这种就需要更具实际路径配置框出的这个玩意儿了

然后确定你测试的设备上打开了被测的纯web页面后,去pc上的Chrome上打开网址:chrome://inspect,会根据你测得内容出现如下页面

 在确保自己正能连上外国的网的时候(或者用另一种方法,绑host访问谷歌,需要查一下)点击划线的inspect,会出现如下页面

 然后定位元素测试就和selenium一样一样的,如果报错的话,如该元素不可见的话,记得在运用隐式等待的基础上合理运用显示等待,因为会出现隐式等待发现元素渲染出来了,画到dom里了但实际该元素的一些css,js可见可点击的属性还没完全加载出来

 

android 混合页面测试

 

 

 

webview开关需要开发帮忙打开,需要的代码和方法如上图。

通过以下两个命令可以分别获得webview的包名 和相应的版本,pc配置的Chromedriver版本需要能支持webview的版本,shell的命令内容记得加上双引号(原因见上文),下图没加

 

测试方法一:

通过sdk路径下tools里的uiautomatorviewer工具来渲染定位被测页面,会给webview的元素每个生成一个content-desc属性,如下图;测试时利用此属性进行定位,即如下下图使用MobileBy.ACCESSIBILITY_ID方法。

缺点: 相同页面在不同手机上的渲染结果不同,当进行兼容性测试时,会导致写的脚本在不同的手机上并不生效

 

 

 

  测试方法二:

和之前的纯web应用一样使用Chrome 的inspect:去pc上的Chrome上打开网址:chrome://inspect,然后点击放大镜点想定位的元素,定位前需要将driver的context换到webview的上,定位时使用的方法和selenium一样,如下下图

 注意:根据打印点击进入webview页面前和进入后所打印出的contexts,可知原生应用的contexts和webview页的contexts是不一样的,如下图

 

 

所以在定位webview元素前需要结合列表知识将driver的context换到webview的上,如下图

 

 

posted @ 2022-01-02 21:52  云啊云的囤粮地  阅读(367)  评论(0编辑  收藏  举报