基于安卓调试桥的安卓应用程序的功能测试方法及装置与流程

未命名 10-09 阅读:114 评论:0


1.本发明涉及一种基于安卓调试桥的安卓应用程序的功能测试方法及装置。


背景技术:

2.安卓调试桥(adb)是一种功能多样的命令行工具,可让用户与设备进行通信。adb命令可用于执行各种设备操作,例如安装和调试应用。adb提供对unix shell(可用来在设备上运行各种命令)的访问权限。包括客户端、守护程序及服务器三个组件:客户端在开发机器上运行。可以通过发出adb命令从命令行终端调用客户端;守护程序(adbd)用于在设备上运行命令,守护程序在每个设备上作为后台进程运行。服务器:用于管理客户端与守护程序之间的通信,在开发机器上作为后台进程运行。在基于安卓系统的车机端测试中,测试人员需要通过adb对设备进行操作,传统的方式需要测试人员在cmd命令终端中手动输入adb或shell指令,这种方式通常需要投入大量的手工操作,而且cmd面板作为通用的命令行解释器,没有提供对adb端口的实时监听功能,即测试人员在操作输入命令时,无从得知是否连接了安卓设备,从而导致命令输入完成后,adb因为无法检测到设备而不能执行,或者在连接了多个安卓设备时因为忘记指定相关参数而误操作。并且,对于迭代快速的项目来说,测试人员常常需要一遍遍手动输入相同的命令行,这种重复劳动费时费力,不利于提高测试效率。
3.专利文献cn202211347899.5提供了一种车载信息服务系统渗透测试装置及方法,该专利所述装置及方法其使用目的为进行车载系统的渗透测试,该装置包括:测试硬件部分和测试软件部分;测试硬件部分包括近场通信装置、诊断仪、canoe及计算机;测试软件部分包括底层linux系统及上层安卓调试桥、流量分析工具、抓包工具、端口扫描工具、注入测试工具及无线电分析工具;计算机上有linux系统及安卓调试桥、流量分析工具、抓包工具、端口扫描工具、注入测试工具及无线电分析工具;近场通信装置、诊断仪、canoe分别与计算机和待测车机进行通信,安卓调试桥、流量分析工具、抓包工具、端口扫描工具、注入测试工具及无线电分析工具相互协同配合以渗透测试车机是否达标。本实施例可解决传统手工渗透测试车机耗时耗力的问题。
4.与上述专利文献相比,本技术方法及装置所用目的为任意安卓应用程序的功能测试。
5.专利文献cn201610900642.6公开了一种应用测试方法,应用于服务端,所述服务端通过数据线与被测终端通信连接,所述应用测试方法包括:服务端调用安卓调试桥对被测终端执行系统初始化操作;在系统初始化完成后,若接收到应用测试指令,调用测试组件;根据调用的所述测试组件,在预存的测试脚本中,基于所述应用测试指令提取相应的测试脚本程序段;将提取的所述测试脚本程序段发送至所述被测终端,以对所述被测终端的应用进行测试。本发明还公开了一种应用测试装置及系统。本发明提高了应用测试的效率和便捷性。
6.上述专利文献所述的测试执行脚本不支持自定义,本技术方法及装置支持多种自
定义测试脚本。
7.专利文献cn202110597105.x公开了一种用于移动端的应用测试方法,涉及计算机技术领域,尤其涉及软件测试领域,用于移动端的应用测试方法、装置、设备及存储,可用于ui测试和ai测试场景。具体实现方案为:获取需要在移动端执行的应用测试任务,其中,移动端上部署有安卓调试桥adb和adb守护进程adbd;基于应用测试任务的类型,调用对应的测试逻辑;以及通过执行测试逻辑来完成应用测试任务,并在测试过程中由adb和/或adbd执行相应的adb命令。
8.上述专利文献所述装置需依托互联网及云服务器运行,而本技术方法及装置无需网络连接。
9.上述专利文献与本技术相关度低。


技术实现要素:

10.本发明所要解决的技术问题是克服了现有技术存在的上述问题,提供了一种基于安卓调试桥的安卓应用程序的功能测试方法及装置。
11.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
12.为解决上述技术问题,本发明是采用如下技术方案实现的:
13.一种基于安卓调试桥的安卓应用程序的功能测试方法,包括:
14.监测是否安装了必需的依赖驱动及安卓调试桥环境,若未安装则进行自动安装,如环境已安装则检测服务是否正常运行,未运行则拉起应用;
15.系统环境满足后,检测外部设备的连接情况,如检测到被测设备连接状态更新则应用随即重新查询设备列表;
16.基于服务运行所依赖的环境,录入测试指令并传递至系统层级完成对被测设备的操作;
17.自动扫描工作目录并获取脚本,并进行快捷运行。
18.一种基于安卓调试桥的安卓应用程序的功能测试方法,还包括初始化一个命令行交互区,输入命令后将会调用相应逻辑将所输入命令传入系统层,命令的具体解析及执行由系统层完成,并将系统返回的信息打印在命令行交互区。
19.进一步地,监测是否安装了必需的依赖驱动及安卓调试桥环境及检测服务是否正常运行,具体方法为:
20.使用subprocess模块来运行系统命令,使用上述模块提供的run方法执行判断驱动版本,捕获输出结果;通过返回值的不同判断adb驱动是否已经安装;如未安装则解压自带的adb安装程序,并使用os.environ字典来设置系统变量,将变量名作为字典的键,将变量值作为字典的值进行设置;直接设置系统变量;在检测服务是否运行方面,定义一个check_adb_running函数来检查adb服务是否在运行;函数内部使用subprocess.check_
output执行adb devices命令,并将输出结果解码为字符串;通过检查输出结果中是否包含list of devices attached字符串,判断adb服务是否在运行;如果输出结果中包含该字符串,则说明adb服务在运行最后,调用check_adb_running函数来检查adb服务的运行状态,并根据返回结果进行相应的操作。
21.进一步地,检测外部设备的连接情况及查询设备列表的具体方法:
22.使用subprocess模块执行adb命令,并使用pyudev库监听设备变更事件:使用subprocess模块的check_output法执行adb devices命令,这一命令用于获取设备的连接情况,并得到输出结果,然后解析结果并显示在窗口的设备列表框中;使用pyudev库来监听usb设备变更事件;创建一个yudev监听器,当系统检测到设备的添加或移除事件时,将触发该监听器中的device_event_handler函数,在该函数中执行设备状态的检查;确认设备状态变更后,将会重新执行adb命令读取设备列表;在图形化选择设备方面,具体实施方法为:使用tkinter库创建一个窗口,并使用listbox部件来显示设备列表;将get_connected_devices数用于获取已连接的设备列表,并将设备添加listbox中;当用户选择设备时,触发on_device_select函数,该函数会获取用户选择的设备并调select_device函数来执行相应的adb命令;通过window.mainloop启动窗口的消息循环,使图形界面可交互。
23.进一步地,自动扫描工作目录并获取脚本具体方法:
24.使用kinter创建一个窗口,并在窗口中创建一个文件列表框;通过os库中的os.listdir函数操作文件系统,读取指定文件夹下的文件,并将它们添加到文件列表框中;在双击文件名时,会触发run_file函数,该函数会获取选中的文件名,并根据文件的扩展名来执行不同的操作;如果是.py文件,将使用subprocess.run运行python解释器来运行该文件;如果是.txt文件,将使用subprocess.run运行记事本应用打开该文件,并逐行读取命令输出到系统。如果是.bat文件,将会直接调用os库的os.popen执行该文件。
25.进一步地,初始化一个命令行交互区具体方法为:
26.使用tkinter库,在软件运行中额外嵌入了一套小窗口、输入框、按钮及相关的控件,当点击"执行"按钮时,会调用内置函数来获取输入的命令并执行;执行过程由系统进行,软件会把执行结果显示在输出文本框中。
27.进一步地,测试人员下载程序到本地,双击运行程序,程序扫描系统环境变量,检测到此时未安装adb驱动,程序此时将自动解压安装adb驱动,并写入系统环境变量;写入结束后,程序自动启动adb服务;后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将其写入设备管理区;同时扫描工作目录,得到空结果;此时用户连接另一安卓设备,设备查询进程接收到连接设备变动通知,再次查询设备列表并与当前连接设备进行比较,确定设备有变动后,清空当前设备管理区并填充新的设备信息。
28.进一步地,测试人员下载程序到本地,双击运行程序,程序扫描系统环境变量,检测到此时adb驱动已经安装,程序检测adb服务是否正在运行,检测到未在运行则程序自动启动adb服务;等待服务启动后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将其写入设备管理区;应用读取工作目录,将读取到的批处理文件写入工作目录,同时创建查询进程,更新设备列表;用户点击已连接的某个安卓设备,再点击工作目录下读取到的文本文档名,软件识别当前文件后缀为txt,自动按行读取命令文本打印于命令行交互区,并将其附加上指定操作设备的参数发送给系统,并将系统返回的提示文
本一并打印于命令行交互区。
29.进一步地,测试人员下载程序到本地,双击运行程序,程序扫描系统环境变量,检测到此时未安装adb驱动,程序此时将自动解压安装adb驱动,并写入系统环境变量;写入结束后,程序自动启动adb服务;后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将其写入设备管理区。同时扫描工作目录,将读取到的批处理、文本文件与python文件写入工作目录区,用户点击已连接的某个安卓设备,再点击工作目录下读取到的文本文档名,软件识别当前文件后缀为python文件,自动唤醒系统相关进程,调用对应的python模块进行执行;用户在命令行交互区输入命令,并在设备管理区指定要执行的设备,点击确定后系统将相应设备加上指向对应设备的参数发送给系统,由系统发送至被测设备,软件接收系统返回的信息并打印在命令行交互区。
30.一种基于安卓调试桥的安卓应用程序的功能测试装置,包括:
31.第一单元,用于根据扫描结果确定运行设备上的安卓调试桥环境安装情况;
32.第二单元,用于根据所述应用质量判断外部被测设备连接情况,在外部设备连接情况更新时重新获取设备列表;
33.第三单元,用于提供命令交互区记录所输入的命令行并发送至被测设备,并显示设备返回结果;
34.第四单元,用于自动检测工作目录下对应的脚本文件并显示在所述装置的自定义功能区内,第四单元能够调用并将所选脚本文件运行在被测设备上。
35.与现有技术相比本发明的有益效果是:
36.本发明以python语言进行开发,实现了一款集驱动安装、设备管理、命令输入、常用命令一键输入功能的安卓设备控制软件,构建窗口化软件,提供设备管理区、命令输入区以及可自定义的命令快捷输入栏,支持显示当前建立连接的安卓设备、输入命令控制一个或多个已连接的安卓设备,将安卓设备当前屏幕投放到电脑端,并且提供强大的自定义功能,用户将需要一键执行的命令以文本文件、批处理文件或者python文件的形式导入对应文件夹下,再次启动即可在自定义功能区一键运行命令。本发明运行稳定快速,可扩展性强,支持在所有windows设备上运行以控制所有安卓设备,可以节约测试人员30%测试执行时间。
附图说明
37.下面结合附图对本发明作进一步的说明:
38.图1为实施例1流程图;
39.图2为实施例2流程图;
40.图3为实施例3流程图。
具体实施方式
41.为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用
于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的实施例进行详细说明。
42.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
43.下面结合附图对本发明作详细的描述:
44.本发明软件基于流行编程语言python开发,完全运行在本地环境,通过引用os库,通过命令系统操作安卓设备来实现功能。
45.本发明软件,通过自编写python方法,对系统环境变量进行扫描查找,判断设备是否安装了相应驱动,如检测到设备未安装相应驱动,则运行搭载的安装程序安装相应驱动。另外支持通过检测进程是否存在的方式,在驱动已经安装,但服务未在运行的情况下,启动所需服务。
46.其具体实现方式为:使用了subprocess模块来运行系统命令,使用上述模块提供的run方法执行判断驱动版本,捕获输出结果。并通过返回值的不同判断adb驱动是否已经安装。如未安装则解压自带的adb安装程序,并使用os.environ字典来设置系统变量,将变量名作为字典的键,将变量值作为字典的值进行设置。直接设置系统变量。在查看服务是否运行方面,定义了一个check_adb_running函数来检查adb服务是否在运行。函数内部使用subprocess.check_output执行adb devices命令,并将输出结果解码为字符串。通过检查输出结果中是否包含list of devices attached字符串,可以判断adb服务是否在运行。如果输出结果中包含该字符串,则说明adb服务在运行最后,调用check_adb_running函数来检查adb服务的运行状态,并根据返回结果进行相应的操作。
47.本发明软件初始化了一个单独的查询进程,该进程将在当所依赖的服务正常运行时被唤醒,唤醒时将会扫描系统端口并查找已经建立连接的设备,并将系统返回的设备信息,包括设备名、设备状态,打印在设备管理区。对于与系统连接的设备的变更,专门编写了服务以监听系统外部设备的连接情况,一旦外部设备连接发生变更,查询进程在收到广播后将会在一定延迟后发出指令,重新查询安卓设备的连接情况,如果查询到的设备列表与之前不一致,则会显示最新的设备信息。这种设计比照定时查询方式来说,避免了大量无效命令的收发,降低了内存的消耗。
48.其具体实施方式为:使用subprocess模块执行adb命令,并使用pyudev库监听设备变更事件:使用subprocess模块的check_output法执行adb devices命令,这一命令用于获取设备的连接情况,并得到输出结果,然后解析结果并显示在窗口的设备列表框中。
49.使用pyudev库来监听usb设备变更事件。创建一个yudev监听器,当系统检测到设备的添加或移除事件时,将触发该监听器中的device_event_handler函数,在该函数中执行设备状态的检查。确认设备状态变更后,将会重新执行adb命令读取设备列表。
50.在图形化选择设备方面,具体实施方法为:使用tkinter库创建了一个窗口,并使用listbox部件来显示设备列表。将get_connected_devices数用于获取已连接的设备列
表,并将设备添加listbox中。当用户选择设备时,触发on_device_select函数,该函数会获取用户选择的设备并调select_device函数来执行相应的adb命令。通过window.mainloop启动窗口的消息循环,使图形界面可交互。
51.本发明软件初始化了一个命令行交互区,输入命令后将会调用相应逻辑将所输入命令传入系统层,命令的具体解析及执行由系统层完成,并将系统返回的信息打印在交互区。交互区的设计参照了windows自带的命令窗口,对于习惯了使用命令窗口的测试人员来说,命令行交互区的设计可以极大的降低测试人员使用新工具的不适应感,丰富了本软件的使用场景,另外,实际操作由系统层面完成,这种设计提高了本发明软件的使用稳定性及容错率。
52.具体实现方法为:使用了tkinter库,在软件运行中额外嵌入了一套小窗口、输入框、按钮及相关的控件,当点击"执行"按钮时,会调用内置函数来获取输入的命令并执行。执行过程由系统进行,软件会把执行结果显示在输出文本框中。
53.本发明软件提供了一个工作目录,用于挂载用户自定义的命令行脚本,挂载后的脚本可以在窗口右侧的自定义命令快捷输入栏进行一键执行,执行时,软件将会自动检测文件类型,如果脚本使用txt后缀的文本格式封装,则软件将逐行读入命令语句并发送到系统,软件读入与系统返回的提示语句也将被打印在命令行交互区以展示命令的实施细节;如果检测该脚本为批处理文件类型,则将直接运行该批处理文件,软件本身将后台运行;如果被执行文件为python格式,软件将会依赖自带的python运行库执行语句。测试人员可以在实际使用中,依据自己的喜好加入各种测试脚本,增强了易用性。
54.具体实现方法为:使用了kinter库创建了一个窗口,并在窗口中创建了一个文件列表框。然后,通过os库中的os.listdir函数操作文件系统,读取指定文件夹下的文件,并将它们添加到文件列表框中。在双击文件名时,会触发run_file函数。该函数会获取选中的文件名,并根据文件的扩展名来执行不同的操作。如果是.py文件,将使用subprocess.run运行python解释器来运行该文件;如果是.txt文件,将使用subprocess.run运行记事本应用打开该文件,并逐行读取命令输出到系统。如果是.bat文件,将会直接调用os库的os.popen执行该文件。
55.具体实施例1
56.参阅图1,测试人员下载程序到本地,双击运行程序,程序扫描系统环境变量,检测到此时未安装adb驱动,程序此时将自动解压安装adb驱动,并写入系统环境变量。写入结束后,程序自动启动adb服务。后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将其写入设备管理区。同时扫描工作目录,得到空结果。此时用户连接另一安卓设备,设备查询进程接收到连接设备变动通知,再次查询设备列表并与当前连接设备进行比较,确定设备有变动后,清空当前设备管理区并填充新的设备信息。
57.具体实施例2
58.参阅图2,测试人员下载程序到本地,双击运行程序,程序扫描系统环境变量,检测到此时adb驱动已经安装,程序检测adb服务是否正在运行,检测到未在运行则程序自动启动adb服务。等待服务启动后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将其写入设备管理区。应用读取工作目录,将读取到的批处理文件写入工作目录,同时创建查询进程,更新设备列表。用户点击已连接的某个安卓设备,再点击工作
目录下读取到的文本文档名,软件识别当前文件后缀为txt,自动按行读取命令文本打印于命令行交互区,并将其附加上指定操作设备的参数发送给系统,并将系统返回的提示文本一并打印于命令行交互区。
59.具体实施例3
60.参阅图3,测试人员下载程序到本地,双击运行程序,程序扫描系统环境变量,检测到此时未安装adb驱动,程序此时将自动解压安装adb驱动,并写入系统环境变量。写入结束后,程序自动启动adb服务。后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将其写入设备管理区。同时扫描工作目录,将读取到的批处理、文本文件与python文件写入工作目录区,用户点击已连接的某个安卓设备,再点击工作目录下读取到的文本文档名,软件识别当前文件后缀为python文件,自动唤醒系统相关进程,调用对应的python模块进行执行;用户在命令行交互区输入命令,并在设备管理区指定要执行的设备,点击确定后系统将相应设备加上指向对应设备的参数发送给系统,由系统发送至被测设备,软件接收系统返回的信息并打印在命令行交互区。
61.具体实施例4
62.一种基于安卓调试桥的安卓应用程序的功能测试装置,包括:
63.第一单元,用于根据扫描结果确定运行设备上的安卓调试桥环境安装情况;
64.第二单元,用于根据所述应用质量判断外部被测设备连接情况,在外部设备连接情况更新时重新获取设备列表;
65.第三单元,用于提供命令交互区记录所输入的命令行并发送至被测设备,并显示设备返回结果;
66.第四单元,用于自动检测工作目录下对应的脚本文件并显示在所述装置的自定义功能区内,第四单元能够调用并将所选脚本文件运行在被测设备上。
67.本发明装置可以实时监控并显示当前已连接的安卓设备;输入命令后,可以以图形化方式指定执行命令的设备;允许一键执行三种格式(文本文档、批处理文件、python文件)的用户自定义脚本;可以自动检测设备是否安装了所需依赖驱动,如未安装可自动进行安装。
68.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。同时本说明书中未作详细描述的内容均属于本领域技术人员公知的现有技术。

技术特征:
1.一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于,包括:监测是否安装了必需的依赖驱动及安卓调试桥环境,若未安装则进行自动安装,如环境已安装则检测服务是否正常运行,未运行则拉起应用;系统环境满足后,检测外部设备的连接情况,如检测到被测设备连接状态更新则应用随即重新查询设备列表;基于服务运行所依赖的环境,录入测试指令并传递至系统层级完成对被测设备的操作;自动扫描工作目录并获取脚本,并进行快捷运行。2.根据权利要求1所述的一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于:还包括初始化一个命令行交互区,输入命令后将会调用相应逻辑将所输入命令传入系统层,命令的具体解析及执行由系统层完成,并将系统返回的信息打印在命令行交互区。3.根据权利要求2所述的一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于,监测是否安装了必需的依赖驱动及安卓调试桥环境及检测服务是否正常运行,具体方法为:使用subprocess模块来运行系统命令,使用上述模块提供的run方法执行判断驱动版本,捕获输出结果;通过返回值的不同判断adb驱动是否已经安装;如未安装则解压自带的adb安装程序,并使用os.environ字典来设置系统变量,将变量名作为字典的键,将变量值作为字典的值进行设置;直接设置系统变量;在检测服务是否运行方面,定义一个check_adb_running函数来检查adb服务是否在运行;函数内部使用subprocess.check_output执行adb devices命令,并将输出结果解码为字符串;通过检查输出结果中是否包含list of devices attached字符串,判断adb服务是否在运行;如果输出结果中包含该字符串,则说明adb服务在运行最后,调用check_adb_running函数来检查adb服务的运行状态,并根据返回结果进行相应的操作。4.根据权利要求3所述的一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于,检测外部设备的连接情况及查询设备列表的具体方法:使用subprocess模块执行adb命令,并使用pyudev库监听设备变更事件:使用subprocess模块的check_output法执行adb devices命令,这一命令用于获取设备的连接情况,并得到输出结果,然后解析结果并显示在窗口的设备列表框中;使用pyudev库来监听usb设备变更事件;创建一个yudev监听器,当系统检测到设备的添加或移除事件时,将触发该监听器中的device_event_handler函数,在该函数中执行设备状态的检查;确认设备状态变更后,将会重新执行adb命令读取设备列表;在图形化选择设备方面,具体实施方法为:使用tkinter库创建一个窗口,并使用listbox部件来显示设备列表;将get_connected_devices函数用于获取已连接的设备列表,并将设备添加listbox中;当用户选择设备时,触发on_device_select函数,该函数会获取用户选择的设备并调select_device函数来执行相应的adb命令;通过window.mainloop启动窗口的消息循环,使图形界面可交互。5.根据权利要求4所述的一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于,自动扫描工作目录并获取脚本具体方法:使用tkinter创建一个窗口,并在窗口中创建一个文件列表框;通过os库中的
os.listdir函数操作文件系统,读取指定文件夹下的文件,并将它们添加到文件列表框中;在双击文件名时,会触发run_file函数,该函数会获取选中的文件名,并根据文件的扩展名来执行不同的操作;如果是.py文件,将使用subprocess.run运行python解释器来运行该文件;如果是.txt文件,将使用subprocess.run运行记事本应用打开该文件,并逐行读取命令输出到系统。如果是.bat文件,将会直接调用os库的os.popen执行该文件。6.根据权利要求2所述的一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于,初始化一个命令行交互区具体方法为:使用tkinter库,在软件运行中额外嵌入了一套小窗口、输入框、按钮及相关的控件,当点击"执行"按钮时,会调用内置函数来获取输入的命令并执行;执行过程由系统进行,软件会把执行结果显示在输出文本框中。7.根据权利要求1所述的一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于,具体包括以下内容:程序扫描系统环境变量,检测到此时未安装adb驱动,程序此时将自动解压安装adb驱动,并写入系统环境变量;写入结束后,程序自动启动adb服务;后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将检测到的设备信息写入设备管理区;同时扫描工作目录,得到空结果;此时用户连接另一安卓设备,设备查询进程接收到连接设备变动通知,再次查询设备列表并与当前连接设备进行比较,确定设备有变动后,清空当前设备管理区并填充新的设备信息。8.根据权利要求2所述的一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于,具体包括以下内容:程序扫描系统环境变量,检测到此时adb驱动已经安装,程序检测adb服务是否正在运行,检测到未在运行则程序自动启动adb服务;等待服务启动后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将检测到的设备信息写入设备管理区;应用读取工作目录,将读取到的批处理文件写入工作目录,同时创建查询进程,更新设备列表;用户点击已连接的某个安卓设备,再点击工作目录下读取到的文本文档名,软件识别当前文件后缀为txt,自动按行读取命令文本打印于命令行交互区,并附加上指定操作设备的参数发送给系统,并将系统返回的提示文本一并打印于命令行交互区。9.根据权利要求2所述的一种基于安卓调试桥的安卓应用程序的功能测试方法,其特征在于,具体包括以下内容:程序扫描系统环境变量,检测到此时未安装adb驱动,程序此时将自动解压安装adb驱动,并写入系统环境变量;写入结束后,程序自动启动adb服务;后建立设备查询进程,查找此时连接的安卓设备,保存当前检测到的设备信息,并将其写入设备管理区;同时扫描工作目录,将读取到的批处理、文本文件与python文件写入工作目录区,用户点击已连接的某个安卓设备,再点击工作目录下读取到的文本文档名,软件识别当前文件后缀为python文件,自动唤醒系统相关进程,调用对应的python模块进行执行;
用户在命令行交互区输入命令,并在设备管理区指定要执行的设备,点击确定后系统将相应设备加上指向对应设备的参数发送给系统,由系统发送至被测设备,软件接收系统返回的信息并打印在命令行交互区。10.一种基于安卓调试桥的安卓应用程序的功能测试装置,其特征在于,包括:第一单元,用于根据扫描结果确定运行设备上的安卓调试桥环境安装情况;第二单元,用于根据所述应用质量判断外部被测设备连接情况,在外部设备连接情况更新时重新获取设备列表;第三单元,用于提供命令交互区记录所输入的命令行并发送至被测设备,并显示设备返回结果;第四单元,用于自动检测工作目录下对应的脚本文件并显示在所述装置的自定义功能区内,第四单元能够调用并将所选脚本文件运行在被测设备上。

技术总结
本发明涉及一种基于安卓调试桥的安卓应用程序的功能测试方法及装置,包括:监测是否安装了必需的依赖驱动及安卓调试桥环境,若未安装则进行自动安装,如环境已安装则检测服务是否正常运行,未运行则拉起应用;检测外部设备的连接情况,如检测到被测设备连接状态更新则应用随即重新查询设备列表;基于服务运行所依赖的环境,录入测试指令并传递至系统层级完成对被测设备的操作;自动扫描工作目录并获取脚本,并进行快捷运行;初始化一个命令行交互区,输入命令后将会调用相应逻辑将所输入命令传入系统层,并将系统返回的信息打印在命令行交互区;本发明运行稳定快速,可扩展性强,支持在所有Windows设备上运行以控制所有安卓设备,节约测试执行时间。节约测试执行时间。节约测试执行时间。


技术研发人员:刘泽昱 李振龙 魏强
受保护的技术使用者:一汽奔腾轿车有限公司
技术研发日:2023.06.26
技术公布日:2023/10/8
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐