书签 分享 收藏 举报 版权申诉 / 15

基于ANDROID平台的自动化测试方法及测试工具.pdf

  • 上传人:111****112
  • 文档编号:4248973
  • 上传时间:2018-09-12
  • 格式:PDF
  • 页数:15
  • 大小:451.26KB
  • 摘要
    申请专利号:

    CN201110446674.0

    申请日:

    2011.12.27

    公开号:

    CN102419732A

    公开日:

    2012.04.18

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||公开

    IPC分类号:

    G06F11/36

    主分类号:

    G06F11/36

    申请人:

    TCL集团股份有限公司

    发明人:

    张弢

    地址:

    516001 广东省惠州市鹅岭南路6号TCL工业大厦8楼技术中心

    优先权:

    专利代理机构:

    深圳中一专利商标事务所 44237

    代理人:

    张全文

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供了一种基于android平台的自动化测试方法及测试工具,该测试方法包括:用于录制操作事件并生成android平台可执行脚本的脚本录制步骤;用于在设备对象接收到执行脚本的命令后执行所述可执行脚本的脚本执行步骤;用于根据脚本执行结果判断自动化用例是否通过的结果判断步骤。本发明通过录制事件脚本、回放脚本和自动界面元素比对,得出测试结果,实现自动化测试,整个测试过程仅需测试人员读取测试结果,实现起来准确快捷,节约了大量人力物力。本发明可以作为一种快捷的自动化测试方法和工具广泛应用于android程序测试行业中。

    权利要求书

    1: 基于 android 平台的自动化测试方法, 其特征在于, 所述方法包括下述步骤 : 用于录制操作事件并生成 android 平台可执行脚本的脚本录制步骤 ; 用于在设备对象接收到执行脚本的命令后执行所述可执行脚本的脚本执行步骤 ; 以及 用于根据脚本执行结果判断自动化用例是否通过的结果判断步骤。
    2: 如权利要求 1 所述的方法, 其特征在于, 在脚本录制和脚本执行的步骤中保存当前 界面元素, 在结果判断步骤中通过比对界面元素判断自动化用例是否通过, 若所述得到的 界面元素相同则表明该自动化用例通过, 反之该自动化用例未通过。
    3: 如权利要求 1 所述的方法, 其特征在于, 在所述脚本录制步骤之前还包括下述步骤 : 用于获取与当前 PC 机连接的设备对象, 并读取 linux 层与 android 层的键值映射文件 到对应的 HashMap 中的工具初始化步骤。
    4: 如权利要求 2 所述的方法, 其特征在于, 所述的脚本录制步骤具体包括下述步骤 : 命令生成发送步骤, 在自动化测试工具端构建操作命令, 并将所述的操作命令格式化 成二进制 byte 数组, 通过建立 socket 连接将所述的操作命令发送到被测设备对象 ; 命令执行步骤, 设备对象接收所述操作命令并执行该操作命令, 执行完毕后获取并保 存执行脚本信息 ; 脚本解析步骤, 将所述执脚本行信息中包含有表示设备操作动作的键值与装载有 linux 层映射文件的 HashMap 做映射, 再将得到的映射值与装载有 android 层映射文件的 HashMap 做映射, 得到经双层映射后的键值 ; 以及 脚本生成步骤, 根据经双层映射后的键值生成 android 平台可执行的脚本。
    5: 如权利要求 4 所述的方法, 其特征在于, 所述执行脚本信息包括 : 表示设备操作动作 的 16 进制码流、 设备对象接收到本次操作命令与上一次操作命令的间隔时间、 本次操作命 令执行完毕后设备对象显示的当前界面元素。
    6: 如权利要求 5 所述的方法, 其特征在于, 所述的 16 进制码流分为三段, 包括设备类 型、 键值和操作类型。
    7: 如权利要求 4 所述的方法, 其特征在于, 所述的设备操作动作包括点击设备上的实 体按键或虚拟按键和点击控制所述设备的遥控器上的实体或虚拟按键。
    8: 如权利要求 4 所述的方法, 其特征在于, 在所述命令生成发送步骤之前还包括下述 步骤 : 触发录制步骤, 用于标识可以开始进行脚本录制 ; 连接确认步骤, 用于确认自动化测试工具是否获取到设备对象。
    9: 如权利要求 4 所述的方法, 其特征在于, 所述脚本解析步骤具体如下 : 自动化测试工具调用触发解析进程 ; 判断所述保存的执行脚本信息是否为有效的脚本 ; 若所述执行脚本信息为有效的脚本, 则进一步判断该执行脚本信息中包含有表示设备 操作动作的键值是否为设备按键操作或是遥控器按键操作 ; 若表示设备操作动作的键值为设备按键操作或是遥控器按键操作, 则将该键值与装载 有 linux 层映射文件的 HashMap 做映射 ; 以及 将上步得到的映射值与装载有 android 层映射文件的 HashMap 做映射, 得到经双层映 射后的键值。 2
    10: 如权利要求 2 所述的方法, 其特征在于, 所述的脚本执行步骤包括下述步骤 : 自动化测试工具调用触发执行进程 ; 自动化测试工具确认是否获取到设备对象 ; 若已获取到设备对象, 则通过建立 socket 连接再根据模块名和用例名获取可执行脚 本路径, 最终得到可执行脚本 ; 判断所述得到的可执行脚本是否为需要执行的脚本 ; 若该执行脚本是需要执行的脚本, 则将所述可执行脚本中包含的键值组装成 shell 命 令, 设备对象根据接收所述 shell 命令开始执行所述可执行脚本 ; 获取设备对象当前界面元素。
    11: 如权利要求 10 所述的方法, 其特征在于, 在获取设备对象当前界面元素步骤之前 还包括下述步骤 : 执行 sleep 线程, 休眠在脚本录制时保存的上次操作的间隔时间。
    12: 如权利要求 11 所述的方法, 其特征在于, 在获取设备对象当前界面元素的同时记 录当前的获取次数, 且在获取设备对象当前界面元素步骤之后还包括下述步骤 : 判断设备对象当前界面元素是否获取成功, 若获取成功, 则保存当前界面元素, 否则继 续执行 sleep 线程。
    13: 如权利要求 12 所述的方法, 其特征在于, 若当前界面元素获取失败, 则进一步判断 当前记录的获取次数是否小于一预设的阈值, 若小于所述阈值则继续执行 sleep 线程, 否 则该测试用例执行结束并记录用例执行状态。
    14: 一种基于 android 平台的自动化测试工具, 其特征在于, 本自动化测试工具包括 : 脚本录制单元, 用于录制操作事件并生成 android 平台可执行脚本 ; 脚本执行单元, 用于在设备对象接收到执行脚本的命令后执行所述可执行脚本 ; 以及 比对判断单元, 用于根据脚本执行结果判断自动化用例是否通过。
    15: 如权利要求 14 所述的基于 android 平台的自动化测试工具, 其特征在于, 所述脚本 录制单元和脚本执行单元均保存当前界面元素, 所述比对判断单元通过比对界面元素判断 自动化用例是否通过, 若所述得到的界面元素相同则表明该自动化用例通过, 反之该自动 化用例未通过。
    16: 如权利要求 14 或 1 5 所述的自动化测试工具, 其特征在于, 本自动化测试工具还包 括: 工具初始化单元, 用于获取与当前 PC 机连接的设备对象, 并读取 linux 层与 android 层的键值映射文件到对应的 HashMap 中。

    说明书


    基于 android 平台的自动化测试方法及测试工具

        技术领域 本发明属于程序测试领域, 尤其涉及一种基于 android 平台的自动化测试方法及 测试工具。
         背景技术 Android 是一种以 Linux 为基础的开放源码操作系统, 正因为其开源免费, 再加上 Android 操作系统简单实用, 受到广大厂商的偏爱, 特别在智能手机领域短短的三年内就取 得的长足的发展, 目前已经超过苹果操作系统成为第一智能操作系统, 不仅如此, 在平板电 脑、 智能电视等其他领域越来越多的厂商都开始逐步倾向选择 Android 操作系统。
         智能设备之所以能受到广大消费者的喜爱, 就是因为其具有海量的应用软件, 通 过不同的应用软件实现不同的功能, 丰富了用户的生活, 提高用户的使用体验, 苹果手机正 是凭借这点积累了大量的粉丝。对于 Android 手机也不例外, 正是因为系统开源, 广大的程 序爱好者都可以加入到这个 Android 程序开发的环境中来, Android 如火如荼的气势实在
         难以抵挡。 但在一方面, 作为正式的软件产品进入市场之前, 需要测试人员进行精细的测试 工作以保证软件质量, 在另一方面, Android 操作系统更新也越来越快, 从 2008 年 9 月发布 Android1.1 到 2011 年 10 月 19 日发布的 Android4.0, 短短的三年时间内 Android 操作系 统升级了无数版本, 但在操作系统升级的同时也需要对先前开发的软件是否能用在新版本 的 Android 平台上进行验证测试, 比如一些在 Android2.1-update1 版本上可以正常运行的 软件在 Android 2.1-update3 和 2.2 上就可能导致崩溃, 这就意味着需要进行大量重复的 测试工作, 即使是在同一版本的 Android 操作系统中, 根据不同的设备终端也会出现不同 的软件运行结果, 比如在 Motorola 设备终端上用红色边框来高亮一个输入域, 但在其他品 牌设备终端上用同样的红色边框来表示输入域就会出现问题, 所以说在软件开发过程中需 要进行大量的软件测试。
         在 测 试 Android 程 序 时, 可 以 通 过 SDK 里 自 带 现 成 的 测 试 工 具 monkey 和 monkeyrunner, monkey 主要应用在压力和可靠性测试上, 运行该命令可以随机地向目标程 序发送各种模拟键盘事件流, 并且可以自己定义发送的次数, 以此观察被测应用程序的稳 定性和可靠性, 应用起来也比较简单, 记住那几个命令就行了。而 monkeyrunner, 相比之下 会强大一些, 它主要可应用于功能测试, 回归测试, 并且可以自定义测试扩展, 灵活性较强, 并且测试人员可以完全控制。但目前基于 Android 平台的软件测试都是通过测试人员一步 步人工实现的, 在测试过程中需要不停地看着设备对象的显示屏, 来判断该测试用例是否 通过, 这样的人工测试需要浪费大量的人力物力, 限制了 Android 软件的进一步发展, 而且 目前也没有一款完善的基于 Android 平台的自动化测试工具。 发明内容 鉴于上述问题, 本发明实施例的目的是提供一种基于 android 平台的自动化测试 方法, 旨在解决现阶段基于 android 平台的人工逐步测试程序造成的人力物力资源大量浪
         费的问题。
         本发明实施例是这样实现的, 基于 android 平台的自动化测试方法, 包括下述步 骤:
         用于录制操作事件并生成 android 平台可执行脚本的脚本录制步骤 ;
         用于在设备对象接收到执行脚本的命令后执行所述可执行脚本的脚本执行步骤 ; 以及
         用于根据脚本执行结果判断自动化用例是否通过的结果判断步骤。
         进一步, 在脚本录制和脚本执行的步骤中保存当前界面元素, 通过比对界面元素 判断自动化用例是否通过, 若所述得到的界面元素相同则表明该自动化用例通过, 反之该 自动化用例未通过。
         进一步, 在所述脚本录制步骤之前还包括下述步骤 :
         用于获取与当前 PC 机连接的设备对象, 并读取 linux 层与 android 层的键值映射 文件到对应的 HashMap 中的工具初始化步骤。
         本发明实施例的另一目的在于提供一种基于 android 平台的自动化测试工具, 本 自动化测试工具包括 :
         脚本录制单元, 用于录制操作事件并生成 android 平台可执行脚本 ;
         脚本执行单元, 用于在设备对象接收到执行脚本的命令后执行所述可执行脚本 ; 以及
         比对判断单元, 用于根据脚本执行结果判断自动化用例是否通过。
         进一步, 所述脚本录制单元和脚本执行单元均保存当前界面元素, 所述比对判断 单元通过比对界面元素判断自动化用例是否通过, 若所述得到的界面元素相同则表明该自 动化用例通过, 反之该自动化用例未通过。
         进一步, 本自动化测试工具还包括 :
         工具初始化单元, 用于获取与当前 PC 机连接的设备对象, 并读取 linux 层与 android 层的键值映射文件到对应的 HashMap 中。
         本发明实施例的有益效果是 : 本发明实施例提供了一种基于 android 平台的自 动化测试方法, 该方法通过脚本录制得到设备对象操作事件的可执行脚本, 在脚本录制时 保存设备对象显示的界面元素, 再通过执行所述可执行脚本得到设备对象的界面元素, 将 两次界面元素自动比对即可得知该测试用例是否通过, 整个过程仅需程序测试人员观察最 后的比对结果记录就可知哪些程序测试用例通过哪些没有通过, 该方法实现起来全程自动 化, 节约了大量的人力物力资源。
         本发明实施例的另一个有益效果是 : 本发明实施例提供了一种基于 android 平台 的自动化测试工具, 该测试工具包括脚本录制单元、 脚本执行单元和比对判断单元, 实现了 脚本录制时的界面元素和脚本执行后的界面元素的自动比对, 得出测试结果, 从而可以自 动化地实现程序的测试, 节约了大量的人力物力资源。 附图说明
         图 1 是本发明第一实施例提供的基于 android 平台的自动化测试方法流程图 ;
         图 2 是本发明第二实施例提供的图 1 中所述脚本录制步骤的具体工作流程图 ;图 3 是本发明第三实施例提供的图 2 中所述脚本解析步骤的具体流程图 ;
         图 4 是本发明第四实施例提供的图 1 中所述脚本执行步骤和比对判断步骤的具体 流程图 ;
         图 5 是本发明第五实施例提供的基于 android 平台的自动化测试工具的结构图。 具体实施方式
         为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。
         在实现本发明实施例前需要搭建好测试通讯系统, 本发明实施例的自动化测试工 具存放在 Android SDK 的 tools 目录下, 该测试工具运行在 PC 机上并且可以运行 jar 包, 所述测试工具通过在 PC 机上安装有 android 自带的 ADB 工具或是通过 USB 实现与外围设 备对象连接, 配置好 socket 通讯参数。所述测试工具在操作界面上通过 swt/jface 展示出 来, 在底层功能时通过 shell 命令实现, 通过 socket 端口和地址将 shell 命令发送给外围 被测设备。 本发明实施例通过录制脚本事件, 根据接收到的 shell 命令回放脚本, 再将执行 脚本完毕后自动获取的界面元素与录制脚本事件过程中获取的界面元素进行比对, 得出测 试用例的测试结果, 从而实现基于 android 平台的软件自动化测试, 在整个测试过程中无 需测试人员一步步跟踪测试, 可以直接读取自动化测试工具的测试结果, 节约了人力成本。
         以下结合具体实施例对本发明的具体实现进行详细描述 :
         实施例一 :
         图 1 示出了本发明第一实施例提供的基于 android 平台的自动化测试方法流程, 详述如下 :
         在步骤 S1 中, 工具初始化步骤, 用于获取与当前 PC 机连接的设备对象, 并读取 linux 层与 android 层的键值映射文件到对应的 HashMap 中。
         在本发明实施例中, 该步骤是实现基于 android 平台自动化测试的前置步骤, 自 动化测试工具需要与外界设备对象连接, 所述的设备对象是 Android 操作系统的设备即 可, 包括但不限于智能手机、 平板电脑和智能电视等。所述的基于 linux 层的键值映射文件 为 qwerty.kl, 该文件里包括操作设备对象的功能以及该功能所对应的键值, 通过点击设备 按键, 系统根据该按键的键值就可以找到该按键对应的功能, 譬如在 android 手机中, 键值 217 是搜索键, 其对应的按键功能是 SEARCH, 点击搜索键后, 根据其键值 217 找到对应的按 键功能 SEARCH。 所述基于 android 层的键值映射文件为 keyEvent.java, 该文件包含的是事 件键码值, 以 16 进制格式保存。将这两个键值映射文件的映射内容读取到对应的 HashMap 中以供后续键值映射查询。
         在步骤 S2 中, 脚本录制步骤, 用于录制操作事件并生成 android 平台可执行脚本。
         在本发明实施例中, 所述的操作事件是指通过设备操作动作产生的事件, 包括点 击设备上的实体按键或虚拟按键和点击控制所述设备的遥控器上的实体或虚拟按键。
         在本发明实施例中, 作为优选的实施例, 在脚本录制完成后, 自动化测试工具会自 动获取当前界面元素并保存该界面元素供后续比对使用。
         在步骤 S3 中, 脚本执行步骤, 用于在设备对象接收到执行脚本的命令后执行所述 可执行脚本。
         在本发明实施例中, 录制好事件脚本后, 为了达到软件测试目的, 需要执行录制好 的可执行脚本, 作为优选的实施方式, 测试工具会自动获取脚本执行完毕后的界面元素, 通 过该界面元素与先前录制脚本时保存的界面元素比对就可判断本测试用例是否通过。
         在步骤 S4 中, 结果判断步骤, 用于根据脚本执行结果判断自动化用例是否通过。
         在本发明实施例中, 在脚本录制和脚本执行的步骤中保存当前界面元素, 在结果 判断步骤中通过比对界面元素判断自动化用例是否通过, 若所述得到的界面元素相同则表 明该自动化用例通过, 反之该自动化用例未通过。
         在本发明实施例中, 无需人工就可以实现自动比对, 进一步作为优选的实施方案, 获取当前界面元素是通过 Android 自带工具 hierarchyviewer 实现的, 该工具原本的用途 是 UI 分析, 但在此可用作于获取界面元素, 并进行界面元素比对。
         本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件来完成。
         实施例二 : 图 2 示出了本发明第二实施例提供的图 1 中所述脚本录制步骤 S2 的具体工作流 程, 详述如下 :
         在步骤 S21 中, 触发录制步骤, 用于标识可以开始进行脚本录制 ;
         在本发明实施例中, 本步骤为实现脚本录制的前置步骤, 只有设备对象接收到该 触发录制的命令时才开始进行脚本录制。在具体实现时, 可以在自动测试工具的工作界面 上提供 “开始录制” 按钮, 测试人员通过点击该按钮开始执行脚本录制。
         在步骤 S22 中, 连接确认步骤, 用于确认自动化测试工具是否获取到设备对象。
         在本发明实施例中, 本步骤同样是进行脚本录制前的一个优选步骤, 为了进一步 确认自动化测试工具是否获取到设备对象, 若没有获取到设备对象, 自动化测试工具给出 “未获取到设备” 的提示, 并结束录制。这样可以防止在没获取到设备对象时进行错误录制, 最终得到错误的比对结果。
         在步骤 S23 中, 命令生成发送步骤, 用于在自动化测试工具端构建操作命令, 并将 所述的操作命令格式化成二进制 byte 数组, 通过建立 socket 连接将所述的操作命令发送 到被测设备对象。
         在本发明实施例中, 测试人员根据需要选择待测的功能, 在测试工具端写入所述 待测功能对应的指令代码构建操作命令。譬如要测试搜索功能时, 测试人员在测试工具端 直接写入 search 指令代码生成搜索操作命令, 该命令经过处理后通过 socket 端口发送到 被测设备对象。
         在步骤 S24 中, 命令执行步骤, 用于设备对象接收所述操作命令并执行该操作命 令, 执行完毕后获取并保存执行脚本信息 ;
         在本发明实施例中, 作为优选的实施方案, 所述保存的执行脚本信息包括 : 表示设 备操作动作的 16 进制码流、 设备对象接收到本次操作命令与上一次操作命令的间隔时间、 本次操作命令执行完毕后设备对象显示的当前界面元素。
         进一步作为优选的是, 所述的 16 进制码流分为三段, 包括设备类型、 键值和操作
         类型。原始的 16 进制码流如下 :
         /dev/input/event3 : 0004 0004 00070028
         /dev/input/event3 : 0001 001c 00000001
         /dev/input/event3 : 0000 0000 00000000
         /dev/input/event3 : 0004 0004 00070028
         /dev/input/event3 : 0001 001c 00000000
         /dev/input/event3 : 0000 0000 00000000
         上述的 0004、 001c、 0000 等均表示键值。
         在步骤 S25 中, 脚本解析步骤, 用于将所述执行脚本信息中包含有表示设备操作 动作的键值与装载有 linux 层映射文件的 HashMap 做映射, 再将得到的映射值与装载有 android 层映射文件的 HashMap 做映射, 得到经双层映射后的键值。
         在步骤 S26 中, 脚本生成步骤, 用于根据经双层映射后的键值生成 android 平台可 执行的脚本。
         在本发明实施例中, 该可执行的脚本提供给下一步脚本执行步骤使用。
         实施例三 :
         图 3 示出了本发明第三实施例提供的图 2 中所述脚本解析步骤的具体流程, 详述如下 : 在步骤 S251 中, 自动化测试工具调用触发解析进程。
         在步骤 S252 中, 判断所述保存的执行脚本信息是否为有效的脚本, 若为无效脚 本, 则脚本解析结束。
         在步骤 S253 中, 若所述执行脚本信息为有效的脚本, 则进一步判断该执行脚本信 息中包含有表示设备操作动作的键值是否为设备按键操作或是遥控器按键操作, 若不是设 备按键或遥控器按键操作, 则脚本解析结束。
         在步骤 S254 中, 若表示设备操作动作的键值为设备按键操作或是遥控器按键操 作, 则将该键值与装载有 linux 层映射文件的 HashMap 做映射, 这里的 linux 层映射文件为 qwerty.kl。
         在 步 骤 S255 中, 将 步 骤 S254 得 到 的 映 射 值 与 装 载 有 android 层 映 射 文 件 的 HashMap 做映射, 得到经双层映射后的键值, 这里的 android 层映射文件为 keyEvent.java。
         在本发明实施例中, 只有通过 linux 层和 android 层键值双层映射, 才能验证在 android 的操作界面上能否完成按键操作所对应的功能。
         在本发明实施例中, 若脚本解析结束后未能得到经双层映射后的键值, 则停留在 此步骤, 不会生成在 android 平台可执行的脚本。
         实施例四 :
         图 4 示出了本发明第四实施例提供的图 1 中所述脚本执行步骤 S3 和比对判断步 骤 S4 的具体流程, 详述如下 :
         在步骤 S31 中, 自动化测试工具调用触发执行进程。
         在步骤 S32 中, 自动化测试工具确认是否获取到设备对象。
         在本发明实施例中, 再次确认自动化测试工具是否获取到设备对象, 若没有获取 到设备对象, 自动化测试工具给出 “未获取到设备” 的提示, 并结束测试用例和标记本测试
         用例脚本执行失败, 这样可以防止在没获取到设备对象时脚本错误执行, 最终得到错误的 比对结果, 因此本步骤可以进一步保证脚本执行步骤正确执行。
         在步骤 S33 中, 若已获取到设备对象, 则通过建立 socket 连接再根据模块名和用 例名获取可执行脚本路径, 最终得到可执行脚本。
         在本发明实施例中, 建立 socket 连接时需要配置客户端 ( 设备对象 ) 的地址和端 口号以及服务器端 (PC 机端 ) 的端口号, 以便建立完整 socket 通讯。
         在步骤 S34 中, 判断所述得到的可执行脚本是否为需要执行的脚本。
         在本发明实施例中, 若检测到所述的可执行脚本不是所需要执行的脚本, 则直接 结束测试用例, 并同时标记本测试用例脚本执行失败。
         在步骤 S35 中, 若该执行脚本是需要执行的脚本, 则将所述可执行脚本中包含的 键值组装成 shell 命令, 设备对象根据接收所述 shell 命令开始执行所述可执行脚本。
         在步骤 S36 中, 执行 sleep 线程, 休眠在脚本录制时保存的上次操作的间隔时间。
         在本发明实施例中, 本步骤是优选的实施方式, 一般情况设备对象可以是智能电 视, 而目前大部分的智能电视的大多应用需要依赖网络, 譬如在搜索网络电视的时候经常 会出现一定时间的网络延时, 这里通过启用 sleep 线程休眠在脚本录制时保存的上次操作 的间隔时间, 以保证脚本被执行完毕, 这时设备对象显示的界面元素就是脚本被执行完毕 后的界面元素。
         在步骤 S37 中, 获取设备对象当前界面元素同时记录当前界面元素已经的获取次 数。
         在步骤 S38 中, 判断设备对象当前界面元素是否获取成功, 若获取成功, 则保存当 前界面元素, 否则继续执行 sleep 线程。
         在本实施例中, 若获取当前界面元素失败, 则继续执行 sleep 线程, 在执行 sleep 线程时若受到外界意外干扰没有休眠足够时间, 可能会导致在获取当前界面元素时脚本并 未执行完毕, 造成了不必要的比对错误, 这样可以克服脚本执行过程中出现的意外干扰。
         在步骤 S39 中, 进一步作为优选的实施方式, 若当前界面元素获取失败, 则进一步 判断当前记录的获取次数是否小于一预设的阈值, 若小于所述阈值则继续执行 sleep 线 程, 否则该测试用例执行结束并记录用例执行状态。
         在本实施例中, 作为实践得出的结论, 所预设的阈值为 3, 当记录的获取次数大于 或等于 3 时, 直接退出脚本执行并指示脚本执行失败, 这样可以避免不必要的重复的获取 界面数据, 节约了测试时间。
         在步骤 S41 中, 将可脚本执行完成后自动获取的界面元素与脚本录制过程中获取 的界面元素进行比对。
         在步骤 S42 中, 根据比对结果判断该自动化用例是否通过的比对判断步骤, 若所 述得到的界面元素相同则表明该自动化用例通过, 反之该自动化用例未通过, 并记录该自 动化用例的执行状态。
         在本发明实施例中, 所述的执行状态包括动化用例通过、 自动化用例未通过、 脚本 执行失败等等。
         实施例五 :
         图 5 示出了本发明第五实施例提供的基于 android 平台的自动化测试工具的结构, 为了便于说明, 仅示出了与本发明实施例相关的部分。详述如下 :
         工具初始化单元, 用于获取与当前 PC 机连接的设备对象, 并读取 linux 层与 android 层的键值映射文件到对应的 HashMap 中。
         在本发明实施例中, 本工具单元是优选部件, 自动化测试工具需要与外界设备对 象连接, 所述的设备对象是基于 Android 操作系统的设备即可, 包括但不限于智能手机、 平 板电脑和智能电视等。在初始化过程中自动化测试工具连接到设备对象后, 需要预先将含 有键值映射内容的两个映射文件读取到对应的 HashMap 中以供后续键值映射查询。
         脚本录制单元, 用于录制操作事件并生成 android 平台可执行脚本。
         在本发明实施例中, 该单元是本自动化测试工具的核心所在, 只有录制好操作事 件后才能进行脚本执行, 从而自动化地完成软件测试, 整个过程都是本自动化测试工具自 动完成。
         所述的操作事件是指通过设备操作动作产生的事件, 包括点击设备上的实体按键 或虚拟按键和点击控制所述设备的遥控器上的实体或虚拟按键。在本发明实施例中, 在脚 本录制完成后, 自动化测试工具会自动获取当前界面元素并保存该界面元素供后续比对使 用。 脚本执行单元, 用于在设备对象接收到执行脚本的命令后执行所述可执行脚本。
         在本发明实施例中, 录制好事件脚本后, 为了达到软件测试目的, 需要执行录制好 的可执行脚本, 作为优选的实施方式, 测试工具会自动获取脚本执行完毕后的界面元素, 通 过该界面元素与先前录制脚本时保存的界面元素比对就可判断本测试用例是否通过。
         结果判断单元, 用于根据脚本执行结果判断自动化用例是否通过。
         在本发明实施例中, 判断自动化用例是否通过可以通过比对脚本录制步骤和脚本 执行的步骤中保存的当前界面元素是否相同来实现, 若所述得到的界面元素相同则表明该 自动化用例通过, 反之该自动化用例未通过, 并记录该自动化用例的执行状态。
         进一步作为优选的实施方式, 所述的脚本录制单元包括 :
         命令生成发送模块, 用于在自动化测试工具端构建操作命令, 并将所述的操作命 令格式化成二进制 byte 数组, 通过建立 socket 连接将所述的操作命令发送到被测设备对 象。
         命令执行模块, 用于设备对象接收所述操作命令并执行该操作命令, 执行完毕后 获取并保存执行脚本信息。
         脚本解析模块, 用将所述执脚本行信息中包含有表示设备操作动作的键值与装载 有 linux 层映射文件的 HashMap 做映射, 再将得到的映射值与装载有 android 层映射文件 的 HashMap 做映射, 得到经双层映射后的键值。以及
         脚本生成模块, 根据经双层映射后的键值生成 android 平台可执行的脚本。
         作为上述脚本录制单元结构的进一步改进, 本脚本录制单元还包括 :
         触发录制模块, 用于标识可以开始进行脚本录制。
         连接确认模块, 用于确认自动化测试工具是否获取到设备对象。
         进一步作为优选的实施方式, 所述脚本执行单元包括 :
         触发执行模块, 用于调用触发执行进程。
         获取确认模块, 用于确认是否获取到设备对象。
         脚本获取模块, 若已获取到设备对象, 则通过建立 socket 连接再根据模块名和用 例名获取可执行脚本路径, 最终得到可执行脚本。
         脚本确认模块, 用于判断所述得到的可执行脚本是否为需要执行的脚本, 若检测 到所述的可执行脚本不是所需要执行的脚本, 则直接结束测试用例, 并同时标记本测试用 例脚本执行失败。
         回放执行模块, 若该执行脚本是需要执行的脚本, 则将所述可执行脚本中包含的 键值组装成 shell 命令, 设备对象根据接收所述 shell 命令开始执行所述可执行脚本。
         休眠模块, 用于执行 sleep 线程, 休眠在脚本录制时保存的上次操作的间隔时间。
         界面元素获取模块, 用于获取设备对象当前界面元素同时记录当前界面元素已经 的获取次数。在本发明实施例中, 本模块是优选的实施方式, 在执行 sleep 线程时若受到外 界意外干扰没有休眠足够时间, 可能会导致在获取当前界面元素时脚本并未执行完毕, 造 成了不必要的比对错误。
         获取判定模块, 用于判断设备对象当前界面元素是否获取成功, 若获取成功, 则保 存当前界面元素, 否则继续执行 sleep 线程。
         阈值判定模块, 若当前界面元素获取失败, 则进一步判断当前记录的获取次数是 否小于一预设的阈值, 若小于所述阈值则继续执行 sleep 线程, 否则该测试用例执行结束 并记录用例执行状态。 在本实施例中, 作为实践得出的结论, 所预设的阈值为 3, 当记录的获 取次数大于或等于 3 时, 直接退出脚本执行并指示脚本执行失败, 这样可以避免不必要的 重复的获取界面数据, 节约了测试时间。 本发明的自动化测试工具运行在 PC 机上, 对手机应用程序或智能电视应用程序 进行自动化测试, 测试人员仅需在本自动化测试工具的软件界面上 PC 观察测试完成后的 显示结果即可, 本自动化测试工具能够正确录制设备按键或遥控按键的操作轨迹, 达到自 动化测试的目的, 有效地节约了开发成本。
         以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。
        

    关 键  词:
    基于 ANDROID 平台 自动化 测试 方法 工具
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于ANDROID平台的自动化测试方法及测试工具.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4248973.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1