【超详细】全国大学生软件测试大赛:移动应用测试脚本编写要求

博主提供练习题下载,导入eclipse即可运行。点击查看

移动测试脚本编写要求:点击查看

博主参赛纪录分享:点击查看


目录

脚本编写要求

UIAutomatorViewer 工具介绍

1、获取快照

2、页面层级

3、属性详情

定位控件的参数选择要求

例1

例2

其他注意事项


脚本编写要求

UIAutomatorViewer 工具介绍

在你开始写测试用例之前,使用 uiautomatorviewer 工具可以帮助你熟悉你的 UI 组件(包括视图和控件),并获取组件的各项属性信息。

你可以使用它对当前连接到你电脑上的手机屏幕进行一个快照,然后可以看到手 机当前页面的层级关系和每个控件的属性。利用这些信息,你可以写出针对特定 UI 控件的测试用例。

在本地的 ..\sdk\tools\ 目录下打开 uiautomatorviewer.bat (打开前请手机连接 电脑,手机开启 USB 调试)。

1、获取快照

        当你要分析一个页面时,首先将手机的页面停留在你要分析的页面,然后用数据 线连接电脑。

然后点击 uiautomatorviewer 左上角的第二个图标按钮 Device Screenshot,点击 之后会将当前手机界面的快照更新到这里来。

2、页面层级

        右上方的整个区域,就是当前页面布局的层级关系。

3、属性详情

        右下方的整个区域,是当前选中的页面或者是控件的属性信息。这部分比较重要, 我们以后写代码的时候就是需要通过查看属性中的控件的 id 或者是 text 等来获 取控件的实例,然后点击操作它。

定位控件的参数选择要求

原则:对脚本控件定位参数的选择要追求在要求范围内的唯一性。

即除了在多个页面中都会出现的公共控件之外(例如返回按钮),其它的控 件定位参数的选择要做到在题目范围内的全局唯一

本题只涉及到使用两种参数对控件进行定位,控件 id 或控件 XPath,其中

参数选择优先级:控件 Resource-id > 控件 XPath

        优先使用控件的 id 来定位控件(对应 driver.findElementById()方法),若 id 在题目范围内 并不全局唯一, 则 使 用 XPath 进行定位 (对应 driver.findElementByXPath()方法)。

 

例1

        如上图中使用 UI Automator Viewer 工具(这个工具在本机的 Android sdk 目录下的 tools 文件夹下,名为 uiautomatorviewer.bat 的文件,双击运行即可启 动该工具,点击工具中左上角,见上图,第二个按钮即可获取当前已连接设备 的当前页面,并查看对应控件属性)查看已连接设备当前页面上的控件及其属 性。

        对比以上两图可以发现,“商城”控件的 id 为 com.floral.life:id/rb_bottom_s hop,而与其同类的控件“我的”的 id 为 com.floral.life:id/rb_bottom_person,我 们如果要定位控件“商城”,可知其 id 满足定位参数唯一性的原则,所以这里 使用 id 作为“商城”定位的参数

 

例2

        比较上面两张图可以发现,当前屏幕上“干花”这个控件的 id 和“鲜切 花”的 id 是相同的,都为 com.floral.life:id/tv_title。如果我们要定位“鲜切花” 这个控件,根据优先使用全局唯一的参数来定位的原则,发现 id 并不全局唯 一,不能和例 1 一样处理,故考虑使用 XPath 进行定位。

        XPath 是一种特殊的路径,可以理解为使用多个参数来唯一定位到一个控 件。

        在此处我们使用的 XPath 为//android.widget.TextView[@text='鲜切花 '],即 其格式如下。

//控件类名[@控件属性名='控件属性值']

        即定位到当前页面中的 android.widget.TextView 类控件且其对应的 text 属性值 为'鲜切花 '(此处'鲜切花 '的花字后面还有一个空格,所以不要自己输入属性 值,应该直接把在 UI Automator Viewer 中的值直接拷贝到代码中去)。

        理论上来说 XPath 中的控件属性名可以是该控件的任意属性,但因为全局 唯一性的要求,首要选择 text、content-desc 这种特殊性较强的属性值,不要选 择 index、bounds 这种多个控件极易相同(即未满足全局唯一)的属性值。

 

其他注意事项

  • 脚本中不要使用 driver.findElementsByxxx()一类的方法,不要用该方法 定位多个控件得到一个 list 再循环来操作 list 中控件(除非该控件的 XPath 都不能满足在测试范围内的全局唯一)。
  • 脚本中允许自定义函数,但对于 driver.findElementById() 这类原生方法,不 要进行封装。
  • 脚本中使用 XPath 进行定位时,务必与脚本编写要求中的 XPath 格式完全一 致,即
    //控件类名[@控件属性名='控件属性值'] 
    不要使用//*[@控件属性名='控件属性值']等一系列其他格式。
  • 逻辑上是一句话的代码务必写在一行内,不要在函数的参数处换行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值