一种基于adb的测试驱动系统、方法及存储介质技术方案

技术编号:27618365 阅读:19 留言:0更新日期:2021-03-10 10:54
本发明专利技术提供一种基于adb的测试驱动系统、方法及存储介质,其中方法包括:查找目标控件;使用元素对应的方法进行用户操作模拟;使用Python单元测试框架实现用例管理和结果断言。本发明专利技术的基于adb的测试驱动系统,其测试框架是基于python开发的库,只需要一个python就可以直接编写测试脚本测试运行,不需要安装和配置复杂的环境,能和安卓系统进行很好的衔接,有很好的适用性。有很好的适用性。有很好的适用性。

【技术实现步骤摘要】
一种基于adb的测试驱动系统、方法及存储介质


[0001]本专利技术涉及Android(安卓系统)的测试
,特别涉及一种基于adb的测试驱动系统、方法及存储介质。

技术介绍

[0002]现有的对安卓系统的测试框架不能很全面的进行测试,要么对安卓系统依赖很强,要么笨重不够灵活。如Robotium,Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium需要在应用内部编写测试代码,是集成在应用里面的。再比如Appium,Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium配置环境非常繁杂,需要安装安卓SDK、JDK。综上所述,现有的对安卓系统的测试框架,不能和安卓系统进行很好的衔接,系统操作能力弱。

技术实现思路

[0003]本专利技术的目的是提供一种基于adb的测试驱动系统、方法及存储介质,可以解决现有的测试框架对安卓系统依赖性高,不能和安卓系统进行很好的衔接的问题。
[0004]本专利技术的目的是通过以下技术方案实现的:
[0005]第一方面,本专利技术提供一种基于adb的测试驱动系统,包括元素控件查找模块、用户事件输入模块、测试辅助模块和系统操作模块,其中:
[0006]元素控件查找模块,通过元素控件查找API与待测安卓系统连接,主要通过封装使用os模块的popen方法调用uiautomator、screencap和adb pull命令来实现元素树获取、屏幕截图获取,然后通过Python封装成所需的接口函数对外提供服务;
[0007]用户事件输入模块,通过用户事件输入API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用input命令以及自定义的命令工具来实现用户事件输入接口函数;
[0008]测试辅助模块,通过测试辅助API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用logcat、am、pm等命令,结合元素控件查找API实现相应的接口函数;
[0009]系统操作模块,通过系统操作API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用svc、getprop、setprop、settings、ime、wm、screencap、自定义命令命令来实现相应的接口函数。
[0010]第二方面,本专利技术提供一种基于adb的测试驱动方法,包括以下步骤:
[0011]步骤1、查找目标控件;
[0012]步骤2、使用元素对应的方法进行用户操作模拟;
[0013]步骤3、使用Python单元测试框架实现用例管理和结果断言。
[0014]进一步的,所述的结果断言的实现方法为:引用python内置的assert实现结果判
断,通过判断是否存在某一控件是否存在或控件文本是否存在来实现。
[0015]进一步的,所述的查找目标控件的方法为:实例化一个测试驱动类为设备实例,使用设备实例下面的方法来进行元素定位。
[0016]第三方面,本专利技术提供一种存储介质,所述的存储介质中存储有计算机程序,运行该计算机程序,可以执行上述基于adb的测试驱动方法。
[0017]本专利技术的基于adb的测试驱动系统,其测试框架是基于python开发的库,只需要一个python就可以直接编写测试脚本测试运行,不需要安装和配置复杂的环境,能和安卓系统进行很好的衔接,有很好的适用性。
附图说明
[0018]图1为本专利技术的基于adb的测试驱动系统框架结构示意图;
[0019]图2为本专利技术的基于adb的测试驱动方法步骤图。
具体实施方式
[0020]下面结合附图对本公开实施例进行详细描述。
[0021]以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0022]本专利技术的基于adb的测试驱动系统,是基于Python开发的库,Python是一种跨平台的计算机程序设计语言,是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
[0023]基于adb的测试驱动系统,包括元素控件查找模块、用户事件输入模块、测试辅助模块和系统操作模块,其中:
[0024]元素控件查找模块,通过元素控件查找API(Application Programming Interface,应用程序接口)与待测安卓系统连接,主要通过封装使用os(Operating System,操作系统)模块的popen方法(进程I/O函数)调用uiautomator、screencap(安卓的截图指令)和adb pull(从手机传送文件到电脑上)来实现元素树获取、屏幕截图获取,然后通过Python封装成所需的接口函数对外提供服务。
[0025]uiautomator是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架,基于Accessibility服务。其最大的特点就是可以跨进程操作,可以使用UiAutomator框架提供的一些方便的API来对安卓应用进行一系列的自动化测试操作,如点击、滑动、键盘输入、长按以及常用的断言方法等。
[0026]adb pull命令:从手机传送文件到电脑上。
[0027]用户事件输入模块,通过用户事件输入API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用input(输入)命令以及自定义的命令工具来实现常用的用户事
件输入接口函数。
[0028]测试辅助模块,通过测试辅助API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用logcat(日志抓取命令)、am、pm等命令,结合元素控件查找API类似实现相应的接口函数。
[0029]am全称activity manager,是Android下非常实用命令。
[0030]pm工具为包管理(package manager)的简称,可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、控制应用。
[0031]系统操作模块,通过系统操作API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用svc、getprop、setprop、settings、ime、wm、screencap、自定义命令等命令来实现相应的接口函数。
[0032]sv本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于adb的测试驱动系统,其特征在于,包括元素控件查找模块、用户事件输入模块、测试辅助模块和系统操作模块,其中:元素控件查找模块,通过元素控件查找API与待测安卓系统连接,主要通过封装使用os模块的popen方法调用uiautomator、screencap和adb pull命令来实现元素树获取、屏幕截图获取,然后通过Python封装成所需的接口函数对外提供服务;用户事件输入模块,通过用户事件输入API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用input命令以及自定义的命令工具来实现用户事件输入接口函数;测试辅助模块,通过测试辅助API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用logcat、am、pm等命令,结合元素控件查找API实现相应的接口函数;系统操作模块,通过系统操作API与被测安卓系统连接,主要通过封装使用os模块的popen方法调用svc、...

【专利技术属性】
技术研发人员:唐涛陈龙洪飞龙
申请(专利权)人:广州朗国电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1