博主提供练习题下载,导入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 格式完全一 致,即
    //控件类名[@控件属性名='控件属性值'] 

    不要使用//*[@控件属性名='控件属性值']等一系列其他格式。

  • 逻辑上是一句话的代码务必写在一行内,不要在函数的参数处换行。

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

  1. 全国大学生软件测试大赛移动应用测试脚本编写案例Demo

    案例1--汽车之家 在eclipse里使用对应的考试(或练习)秘钥登录并下载题目之后,打开项目的Main.java文件,接下来将在test函数里编写测试脚本. 下面我们将以汽车之家为例,讲解如何依据题 ...

  2. 全国大学生软件测试大赛Web应用测试(一)赛项简介

    全国大学生软件测试大赛Web应用测试(一)赛项简介 web应用测试环境配置所需资料链接 Selenium功能测试 Jmeter性能测试 Web众包测试 在全国大学生软件测试大赛中Web应用测试共包含三 ...

  3. 全国大学生软件测试大赛Web应用测试(五)Jmeter性能测试环境配置

    全国大学生软件测试大赛Web应用测试(五)Jmeter性能测试环境配置 web应用测试环境配置所需资料链接 JMeter客户端下载 Badboy客户端下载 web应用测试环境配置所需资料链接 JMet ...

  4. 全国大学生软件测试大赛Web应用测试(六)Jmeter性能测试具体流程

    全国大学生软件测试大赛Web应用测试(六)Jmeter性能测试具体流程 Jmeter性能测试环境配置. Jmeter性能测试得分技巧 1.登录慕测官网 2.点击练习.搜索关键词"Web应用测 ...

  5. 全国大学生软件测试大赛Web应用测试(二)Selenium功能测试环境配置

    全国大学生软件测试大赛Web应用测试(二)Selenium功能测试环境配置 环境配置指南 web应用测试环境配置所需资料链接 配置JAVA 配置Eclipse 配置mooctest 配置ChromeD ...

  6. 全国大学生软件测试大赛Web应用测试(四)Selenium功能测试得分技巧

    全国大学生软件测试大赛Web应用测试(四)Selenium功能测试得分技巧 WebDriver API 的使用 Java Selenium的三种等待方式 1.强制等待 2.隐性等待 3.显性等待 元素 ...

  7. 全国大学生软件测试大赛Web应用测试(三)Selenium功能测试具体流程

    全国大学生软件测试大赛Web应用测试(三)Selenium功能测试具体流程 Selenium功能测试环境配置. Selenium功能测试得分技巧 1.登录慕测官网 2.点击练习.搜索关键词" ...

  8. 2021年全国大学生软件测试大赛web应用测试预选赛试题及答案

    全国大学生软件测试大赛web应用测试预选赛试题及答案 试题内容 答案 试题内容 答案 注:抖音网站是动态的,控件会发生变化,xpath就会发生变化.所以下面的代码仅供参考. import org.op ...

  9. 全国大学生软件测试大赛web应用测试,我院在全国大学生软件测试大赛总决赛中荣获佳绩...

    为推进特色化示范性软件学院建设和软件人才培养,提高高校学生专业素养以及对专业知识的应用能力,11月22日,全国大学生软件测试大赛总决赛于线上和线下分别举行.本次大赛由全国信息技术标准化技术委员会和软件 ...

  10. 全国大学生软件测试大赛【嵌入式测试个人赛】【练习题分析】

    文章目录 2021年嵌入式测试练习题 1.测试系统 2.功能测试 2.1 测试对象类型 2.2 基本测试步骤 2.3 功能测试代码 2.3.2 温度采集控温功能 2.3.3 加热棒输出电压 2.3.4 ...

最新文章

  1. ATextAppearance.AppCompat.Small not found
  2. 查看tensorflow pb模型文件的节点信息
  3. 从动力学角度看优化算法:GAN的第三个阶段
  4. DataGrid控件(可以实现不刷新增加删除等操作)
  5. 根据on,获取选中的元素
  6. MSP---企业上云需要考虑的问题
  7. Matter-JS Composites 混合材料 · 上
  8. 基于PHP语言的汉语转拼音的类
  9. matlab 浮动波动率,Matlab计算股票价格波动率
  10. 什么是EMC?什么是EMI?什么是EMS?电磁兼容详解(一)
  11. top在linux的命令,Linux命令详解之–top命令 | Linux大学
  12. 项目方案及推进项目的基本流程思路
  13. 案例2:丙类仓库建筑防火案例分析
  14. 84小时,230台服务器,袋鼠云和客户一起全力阻击WannaCrypt蠕虫病毒
  15. 人工智能工具推荐:采集图片神器——后羿采集器
  16. 浏览器直接编辑html文件,HTML文件怎么打开 .html如何编辑
  17. 深度学习与多层神经网络的区别
  18. VMware Workstation Pro虚拟机安装Windows server 2008 r2
  19. WAF是什么?又有什么作用?
  20. 一个复杂的json例子

热门文章

  1. 利用套打和分栏巧妙来做商品价签
  2. 诚信通(b2b)信息发布5大核心技巧
  3. 网银测试软件,光大银行网盾检测工具
  4. 【愚公系列】2023年06月 网络安全(交通银行杯)-文件类型分析和社工
  5. CSS学习记录9/3D的正方体的两种编写方式/3D长方体的编写方式/3D动画/3D播放器
  6. java大学教程习题答案_Java程序设计大学教程:习题解答与课程设计
  7. 1598 - 文具店的折扣
  8. jQuery的mobile开发
  9. 解读李子柒品牌:重新认识IP消费品
  10. 前端开发 - 假期养生保健不完全指南