Appium核心应用(四)
作者:reader1   类别:Java开发    日期:2020-01-07 09:50:54    阅读:220 次   消耗积分:0 分


本周分享《Appium核心应用》实验中的Web应用测试

回顾上周内容,请点击

教材连载:Appium核心应用(一)

教材连载:Appium核心应用(二)

教材连载:Appium核心应用(三)




Web应用程序(即基于浏览器的应用)也是移动设备上很常见的应用类型,但是由于其操作基于浏览器,基于Web规范,所以即使不使用Appium,直接使用Selenium WebDriver也是可以进行测试的。只不过由于浏览器类型不一样,所使用的硬件设备不一样,即使我们在PC端完成了Web应用的测试,我们也无法直接给定明确的结论。所以更保险的方式还是基于移动端来对Web应用进行测试。这个过程中,Appium同样可以帮助我们完成测试工作。


首先在移动设备或模拟器上打开浏览器,再访问一个Web页面,比如蜗牛进销存。同时利用UI Automator Viewer对页面中的对象进行识别,我们来看如下的画面。


11111.png


根据上述截图可以看到,默认情况下UI Automator Viewer并不能识别到Web页面中的元素,其识别到的最小元素为当前浏览器窗口,而无法进一步识别到其中的元素,如登录界面的文本框或按钮等。那么针对这一情况又该如何解决呢?事实上,Appium已经为我们提供了良好的解决方案。通过如下步骤即可完成对Web页面元素的识别处理:


1)确保AppiumBootstrap.jar文件已经成功运行(可通过Android文件管理器查看目录/data/local/tmp是否存在该文件即可,并且确保该文件是与当前Appium配套的最新版本)


2)打开Windows命令行窗口,并通过ADB运行如下命令,让AppiumBootstrap.jar启用UI Automator Viewer完成对页面元素的获取。

adb -s   127.0.0.1:62001 shell uiautomator runtest AppiumBootstrap.jar -c   io.appium.android.bootstrap.Bootstrap -e disableAndroidWatchers false




3)运行上述命令后,按Ctrl+C退出该命令,同时退出浏览器,重启Lazy UI Automator Viewer。


4)再次打开Web浏览器,并访问相应网址。同时打开Lazy UI Automator Viewer,在上方工具栏中点击“Device Screenshot with Compressed Hierarchy”按钮完成Web页面元素的识别。如图所示。


22222.png



从识别到的页面元素来看,该“用户名”文本框并没有对应的resource-id属性,也没有相应的content-desc属性,所以我们只有通过XPath来完成对象的操作,其它页面元素也是如此。另外,针对Web应用的测试,Appium的代码并没有其它特别之处,唯一有一些变化的是需要指定浏览器名称和对应的启动浏览器应用程序的Package和Activity而已。下述代码完成了对蜗牛进销存系统的登录操作。


from appium   import webdriver

from time import   sleep

 

desired_caps =   {}       # 定义webdriver的兼容性设置字典对象

desired_caps['platformName']   = 'Android'    # 指定测试Android平台

版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/121
${comment['nickname']}   ${comment['createtime']}
  
       
${comment.content}
${reply.nickname} 回复 ${comment.nickname}    ${reply.createtime}
     
  
回复内容:${reply.content}