掌桥专利:专业的专利平台
掌桥专利
首页

应用程序多设备兼容测试方法、系统、设备及存储介质

文献发布时间:2023-06-19 18:29:06


应用程序多设备兼容测试方法、系统、设备及存储介质

技术领域

本发明涉及软件测试技术领域,尤其涉及一种应用程序多设备兼容测试方法、系统、设备及存储介质。

背景技术

安卓app的兼容测试,是app软件开发中必不可少的一个流程,在app软件开发过程中,app开发工程师将开发完成的软件交给测试工程师进行测试,除了进行基本的功能测试、可用性测试、性能测试等,还需要对不同屏幕分辨率、不同安卓系统版本、不同安卓手机品牌等差异化元素进行兼容测试,保证app能在市面上尽可能多的设备上稳定运行。

常见的app兼容测试方案,有手工真机测试和云测平台自动化测试,手工真机测试是根据软件特性和测试需求,挑选各差异化元素中具有代表性的若干设备,测试工程师对每台设备进行手工或者配合monkey工具进行兼容测试,需要对每台设备执行相同的测试用例,产生大量的重复工作,若要提高测试覆盖率,挑选的设备数量增加,也意味着更多重复工作。云测平台自动化测试,是将app软件和写好的测试脚本上传到三方服务商的云测平台,选择所需的设备机型和数量,提交测试并等待测试结果,测试过程无法可视化,平台只按照脚本设定好的流程运行测试,复杂场景较难复现,需要反复优化脚本,才能筛查出所有兼容问题,且三方云测平台每次测试都是需要收费才能使用的。

当前,利用手工真机进行app兼容测试的方法,每次只能测试一种手机平台,这就需要工程师进行大量的重复工作,测试效率低。

因此,现有技术还有待改进和发展。

发明内容

本发明的主要目的旨在提供一种应用程序多设备兼容测试方法、系统、设备及存储介质,以解决现有技术所述的上述问题。

本发明第一方面提供了一种应用程序多设备兼容测试方法,包括以下步骤:

将预制测试工具集成到待测应用程序的安装包中,以使所述待测应用程序被点击打开后先进入所述预制测试工具的操作面板界面;

将集成有所述预制测试工具的所述应用程序安装到多台待兼容测试的设备中;

取多台待兼容测试的设备中的一台作为控制端,剩余待兼容测试的设备作为客户端,通过所述操作面板界面建立所述控制端与多台所述客户端之间的一对多连接;

监听用户在所述控制端上对所述待测应用程序各级界面上的操作,生成操作事件队列,并获取所述控制端生成的第一系统日志;

通过所述控制端和所述客户端之间的数据传输通道将所述操作事件队列发送至多台所述客户端;

调用所述客户端中的无障碍服务模拟所述操作事件队列中的各项操作,并获取所述客户端生成的第二系统日志;

将所述客户端产生的所述第二系统日志集回传至所述控制端,在所述控制端中汇总所述第一系统日志和所述第二系统日志得到测试报告。

在本发明第一方面一种可选的实施方式中,所述取多台待兼容测试的设备中的一台作为控制端,剩余待兼容测试的设备作为客户端,通过所述操作面板界面建立所述控制端与多台所述客户端之间的一对多连接包括:

在所述控制端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面;

在所述控制端的所述操作面板界面中以固定的IP地址和端口号开启ServerSocket连接服务;

在所述客户端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面;

在所述客户端的所述操作面板界面中点击连接Socket,完成所述客户端与所述控制端的通讯连接。

在本发明第一方面一种可选的实施方式中,所述在所述客户端的所述操作面板界面中点击连接Socket,完成所述客户端与所述控制端的通讯连接包括:

当所述控制端每接收到一个所述客户端发送的Socket连接请求,就会启用一条新的数据传输通道以及一个新的数据处理线程处理所述控制端和所述客户端之间的数据传输,并将所述客户端添加到已连接设备列表中。

在本发明第一方面一种可选的实施方式中,所述在所述控制端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面和所述在所述客户端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面包括:

打开所述待测应用程序,生成请求无障碍服务的窗口;

在所述请求无障碍服务被允许之后,进入所述预制测试工具的所述操作面板界面,同时在所述操作面板界面的角落上生成用于展示设备实时状态信息的半透明悬浮窗。

在本发明第一方面一种可选的实施方式中,所述监听用户在所述控制端上对所述待测应用程序各级界面上的操作,生成操作事件队列,并获取所述控制端生成的第一系统日志包括:

监听用户在所述控制端上对所述待测应用程序各级界面上的操作;

每监听到一个操作事件,便通过预置的队列添加函数将所述操作事件添加至所述操作事件队列的头部;

在监测到操作结束之后,从所述控制端的日志存储地址中获取操作时间段内所述控制端生成的第一系统日志。

在本发明第一方面一种可选的实施方式中,所述通过所述控制端和所述客户端之间的数据传输通道将所述操作事件队列发送至多台所述客户端包括:

遍历与所述控制端连接的各个所述客户端;

使用预置的队列取出函数每次从所述操作事件队列的尾部取出一个所述操作事件;

按照遍历顺序将取出的所述操作事件依次发送至各个所述客户端,直至所述操作事件队列中的各个所述操作事件全部发送至各个所述客户端。

在本发明第一方面一种可选的实施方式中,所述预制测试工具包括权限申请模块,所述控制端和所述接收端的socket连接通讯模块,无障碍服务模块,日志输出模块以及所述操作面板界面。

本发明第二方面提供了一种应用程序多设备兼容测试系统,所述应用程序多设备兼容测试系统包括:

测试工具集成模块,用于将预制测试工具集成到待测应用程序的安装包中,以使所述待测应用程序被点击打开后先进入所述预制测试工具的操作面板界面;

软件安装模块,用于将集成有所述预制测试工具的所述应用程序安装到多台待兼容测试的设备中;

设备连接模块,用于取多台待兼容测试的设备中的一台作为控制端,剩余待兼容测试的设备作为客户端,通过所述操作面板界面建立所述控制端与多台所述客户端之间的一对多连接;

操作事件监听模块,用于监听用户在所述控制端上对所述待测应用程序各级界面上的操作,生成操作事件队列,并获取所述控制端生成的第一系统日志;

操作事件队列发送模块,用于通过所述控制端和所述客户端之间的数据传输通道将所述操作事件队列发送至多台所述客户端;

操作事件模拟执行模块,用于调用所述客户端中的无障碍服务模拟所述操作事件队列中的各项操作,并获取所述客户端生成的第二系统日志;

报告汇总模块,用于将所述客户端产生的所述第二系统日志集回传至所述控制端,在所述控制端中汇总所述第一系统日志和所述第二系统日志得到测试报告。

本发明第三方面提供了一种应用程序多设备兼容测试设备,所述应用程序多设备兼容测试设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;

所述至少一个处理器调用所述存储器中的所述指令,以使得所述应用程序多设备兼容测试设备执行如上述任一项所述的应用程序多设备兼容测试方法。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的应用程序多设备兼容测试方法。

有益效果:本发明提供了一种应用程序多设备兼容测试方法、系统、设备及存储介质,本发明的方法通过在待测应用程序中集成预制测试工具并安装到多台待测的设备中;通过该预制测试工具配置控制端和客户端角色并建立控制端与多台客户端之间的一对多连接;之后监听用户在控制端上对待测应用程序各级界面上的操作生成操作事件队列;再通过数据传输通道将操作事件队列发送至多台客户端;接着调用客户端中的无障碍服务模拟操作事件队列中的各项操作,获取客户端生成的系统日志;最后将客户端产生的系统日志集回传至控制端,汇总控制端和客户端的系统日志便可得到不同设备的应用程序测试报告。本发明的方法实现了控制一台设备同时测试多台设备,提高了测试效率。

附图说明

图1为本发明一种应用程序多设备兼容测试方法的一个实施例示意图;

图2为本发明一种预制测试工具的操作面板界面的一个实施例示意图;

图3为本发明一种应用程序多设备兼容测试系统的一个实施例示意图;

图4为本发明一种应用程序多设备兼容测试设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种应用程序多设备兼容测试方法、系统、设备及存储介质。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示

或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

参阅图1,本发明第一方面提供了一种应用程序多设备兼容测试方法,包括以下步骤:

S100、将预制测试工具集成到待测应用程序的安装包中,以使所述待测应用程序被点击打开后先进入所述预制测试工具的操作面板界面;在本发明中,所述预制测试工具包括权限申请模块,所述控制端和所述接收端的socket连接通讯模块,无障碍服务模块,日志输出模块以及操作面板界面;在应用程序的安装包中集成所述预制测试工具的目的是为了建立后续测试设备之间的通讯连接;

S200、将集成有所述预制测试工具的所述应用程序安装到多台待兼容测试的设备中;在本发明中,通常来讲,所使用到的多台待兼容测试的设备指的是具有不同屏幕分辨率、不同安卓系统版本、不同厂家品牌的设备,以满足软件测试后能够稳定在不同设备上运行;

S300、取多台待兼容测试的设备中的一台作为控制端,剩余待兼容测试的设备作为客户端,通过所述操作面板界面建立所述控制端与多台所述客户端之间的一对多连接;在本发明中,控制端是作为测试的操作端,客户端则作为被动测试端,通过在控制端上操作实现对多台客户端的操控;’

S400、监听用户在所述控制端上对所述待测应用程序各级界面上的操作,生成操作事件队列,并获取所述控制端生成的第一系统日志;在本发明中,用户在所述控制端上的操作事件会被收集起来,以供后续发送给连接的多台客户端进行这些操作的测试,其中,所述操作事件包括每一个点击、长按、滑动、文本输入、返回键、Home按键等事件,当然,在本发明另一种可选的实施方式中,也可以是每获得一条操作事件,便把操作事件发送至与所述控制端连接的多台所述客户端模拟执行;所述第一系统日志中记录的内容包括测试过程中的应用程序的UI适配问题、操作日志、崩溃日志、ANR日志、cpu占用、内存占用、耗电量等等:

S500、通过所述控制端和所述客户端之间的数据传输通道将所述操作事件队列发送至多台所述客户端;在本发明中,当收集好了所有的测试操作事件之后,所述控制端会自动触发向多台所述客户端发送所述操作事件队列中的各个操作事件,这里判断操作事件是否收集齐全的方式是如果设备在一定的时间内没有在监听到新的操作事件,则认为所有操作事件已经测试完,又或者是当队列中的操作事件数量满足预设数量时,触发所述控制端向所述客户端发送所述操作事件队列中的各个操作事件;

S600、调用所述客户端中的无障碍服务模拟所述操作事件队列中的各项操作,并获取所述客户端生成的第二系统日志;无障碍服务是一套可以模拟操作的系统级别的API,用户同意应用获取无障碍服务的权限之后就可以模拟操作,来控制用户的设备,从而让用户的设备执行控制端发送的操作事件;

S700、将所述客户端产生的所述第二系统日志集回传至所述控制端,在所述控制端中汇总所述第一系统日志和所述第二系统日志得到测试报告。在本发明中,测试报告里面的不同客户端对应的第二系统日志分开罗列,这样便于后续分析应用程序在不同设备中的运行状态。

在本发明第一方面一种可选的实施方式中,所述取多台待兼容测试的设备中的一台作为控制端,剩余待兼容测试的设备作为客户端,通过所述操作面板界面建立所述控制端与多台所述客户端之间的一对多连接包括:

在所述控制端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面;在所述控制端的所述操作面板界面中以固定的IP地址和端口号开启ServerSocket连接服务;在所述客户端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面;在所述客户端的所述操作面板界面中点击连接Socket,完成所述客户端与所述控制端的通讯连接。

具体来说,取一台设备作为控制端,其余设备作为客户端,进行socket一对多连接,控制端和客户端在各自的操作面板(示例如图2所示)进行操作连接,步骤控制端以固定的IP地址和端口号,点击开启ServerSocket按钮开启一个ServerSocket,右边状态图标颜色变为绿色表示显示开启成功,然后等待多个客户端连接,连接成功的设备会追加到已连接设备列表中;其余设备作为客户端,点击连接socket按钮连接控制端的ServerSocket服务,同样的右边状态图标颜色变为绿色则显示连接成功,当控制端每收到一个客户端的连接,就开启一条线程专门与该客户端的socket进行通讯;所有设备都连接完毕,点击操作面板上的配置完成按钮,进行待测app主页,测试工程师使用控制端设备进行手工测试,所有客户端设备被同步操控。

在本发明中,控制端和客户端的操作面板界面可以是一样的(就是安装各个设备内的预制测试工具都具有作为控制端和接收端的功能),当用户选择在一个设备中点击开启ServerSocket按钮就会自动把这台设备的身份变为控制端,其他设备点击连接socket按钮就会自动搜索发现网络中开启了ServerSocket服务的控制端并与之建立通讯连接,在本发明中控制端和客户端所使用的网络环境,可以是所有客户端的可以连接在所述控制端创建的网络中,当然的也可以是所述控制端和多台所述客户端连接在另一台设备(例如路由器)发出的网络中。

在本发明第一方面一种可选的实施方式中,所述在所述客户端的所述操作面板界面中点击连接Socket,完成所述客户端与所述控制端的通讯连接包括:

当所述控制端每接收到一个所述客户端发送的Socket连接请求,就会启用一条新的数据传输通道以及一个新的数据处理线程处理所述控制端和所述客户端之间的数据传输,并将所述客户端添加到已连接设备列表中。在本发明中,每台客户端与所述控制端分别通过不同的数据传输通道和线程传输数据,这样可以调高数据传输的效率,以及避免数据传输过程出错,也便于后期对获得系统日志的来源进行区分。

在本发明第一方面一种可选的实施方式中,所述在所述控制端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面和所述在所述客户端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面包括:

打开所述待测应用程序,生成请求无障碍服务的窗口;在所述请求无障碍服务被允许之后,进入所述预制测试工具的所述操作面板界面,同时在所述操作面板界面的角落上生成用于展示设备实时状态信息的半透明悬浮窗。在本发明中,由于实现一台设备控制多台设备是通过无障碍服务来实现的,所以进入所述待测应用程序时,需要先赋予其调用无障碍服务的权限,以保正所述待测应用程序功能的正常运行,在本发明的半透明悬浮窗中显示的数据主要是设备的cpu占用、内存占用、耗电量等参数,这些数据的更新频率的单位为秒,并且进一步的还按照预定的阈值,分为低中高三个级别,当这些参数的数据处于不同的阈值区间时,分别在悬浮窗显示不同颜色,测试工程师可根据悬浮窗颜色变化随时监测到性能预警。

在本发明第一方面一种可选的实施方式中,所述监听用户在所述控制端上对所述待测应用程序各级界面上的操作,生成操作事件队列,并获取所述控制端生成的第一系统日志包括:

监听用户在所述控制端上对所述待测应用程序各级界面上的操作;在本发明中,当连接建立完成之后,关闭所述操作面板界面便可直接进入到所述应用程序的界面,然后用户就可以对所述应用程序进行测试;

每监听到一个操作事件,便通过预置的队列添加函数将所述操作事件添加至所述操作事件队列的头部;在该步骤中,用户操作控制端的待测app,系统监听到每一个点击、长按、滑动、文本输入、返回键、Home按键等事件,并将每一个事件添加到队列中,使用Java定义的Queue.offer()函数会在操作事件队列头部添加一个事件;

在监测到操作结束之后,从所述控制端的日志存储地址中获取操作时间段内所述控制端生成的第一系统日志。

在本发明第一方面一种可选的实施方式中,所述通过所述控制端和所述客户端之间的数据传输通道将所述操作事件队列发送至多台所述客户端包括:

遍历与所述控制端连接的各个所述客户端;

使用预置的队列取出函数每次从所述操作事件队列的尾部取出一个所述操作事件;在该步骤中,遍历所有客户端,每次取出操作事件队列中的一个操作事件然后通过对应的数据传输道按顺序发送到各个客户端设备,使用Java的Queue.poll()函数从取出尾部最后一个操作事件并将它移出操作事件队列;

按照遍历顺序将取出的所述操作事件依次发送至各个所述客户端,直至所述操作事件队列中的各个所述操作事件全部发送至各个所述客户端。客户端设备接收到操作事件后,以固定的json格式解析每一个事件,json字段中包含事件的关键信息(事件类型、控件属性、手势操作的坐标等),客户端接收到的每个操作事件同理也添加到客户端设备内待模拟执行的队列中,待所有事件接收齐全之后,从所述待模拟执行的队列每次取一个操作事件进行模拟执行,已获得和控制端一直的操作执行效果。

实施例

总的来说,本发明示例性的一种完整实施例流程如下:

S1:将测试工具(包含权限申请模块、控制端和客户端的socket连接通讯模块、无障碍服务模块、日志输出模块和一个简单的操作页面)的核心代码库集成到待测app中并安装到所有需要测试的设备,授予无障碍权限、悬浮窗权限,步骤S1的具体流程如下:

1、在待测app项目代码中,将核心代码库通过以下依赖语句注入到app程序中,作为程序的一部分被打包到apk文件中:

implementation project(path:':Components:Test')

2、启动待测app跳转到测试前配置面板页面,进行测试前准备和配置,包括授予必要权限和进行socket连接;

3、进入测试组件页面后,请求无障碍服务权限并点击允许,此时安卓系统会自动启动测试组件中提前注册好的无障碍服务,在设备屏幕产生如下事件时,安卓系统会将事件的属性,包括事件类型、被操作的控件属性(如文本或按钮的id、坐标、文本内容)、当前屏幕的控件树层级,封装到以下代码中的event对象内,发送给无障碍服务:

override fun onAccessibilityEvent(event:AccessibilityEvent){

when(event.eventType){

AccessibilityEvent.TYPE_VIEW_CLICKED->{}//收到屏幕的单击事件

AccessibilityEvent.TYPE_VIEW_LONG_CLICKED->{}//收到屏幕的长按事件

AccessibilityEvent.TYPE_VIEW_SCROLLED->{}//收到屏幕的滚动事件

AccessibilityEvent.TYPE_VIEW_SELECTED->{}//收到屏幕的选择事件

AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED->{}//收到屏幕的输入框文本变化事件

AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED->{}//屏幕元素更新

AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED->{}//屏幕页面切换

AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_STA RT->{}//收到触摸手势事件开始

AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END->{}//收到触摸手势事件结束

4、请求悬浮窗权限并点击允许,此时创建一个半透明的悬浮窗展示在屏幕右上角,用于测试过程中实时显示设备的状态信息,并提供预警提示。

S2:取一台设备作为控制端,其余设备作为客户端,进行socket一对多连接,控制端和客户端在各自的操作面板进行操作连接,步骤:

控制端以固定的IP地址和端口号,点击按钮开启一个ServerSocket,右边绿色状态图标显示开启成功,然后等待多个客户端连接,连接成功的设备会追加到已连接设备列表中;

其余设备作为客户端,点击按钮连接控制端的socket,右边绿色状态图标显示开启成功,控制端每收到一个客户端的连接,就开启一条线程专门与该客户端的socket进行通讯;

S3:所有设备都连接完毕,点击操作面板上的配置完成按钮,进行待测app主页,测试工程师使用控制端设备进行手工测试,所有客户端设备被同步操控:

操作控制端的待测app,无障碍服务监听到每一个点击、长按、滑动、文本输入、返回键、Home按键等事件,并将每一个事件添加到队列中,使用Java的Queue.offer()函数会在队列头部添加一个元素;

遍历所有客户端socket,取出队列中的事件通过socket按顺序发送到客户端设备,使用Java的Queue.poll()函数,会从取出尾部最后一个元素并将它移出队列;

3:客户端设备接收到事件后,以固定的json格式解析每一个事件,json字段中包含事件的关键信息(事件类型、控件属性、手势操作的坐标等),同理也添加到队列中;

4、按顺序不断取出队列中的事件,通过安卓无障碍服务,将事件在客户端设备进行模拟响应,达到控制端设备对多台客户端设备进行无线同步控制;

node.performAction(AccessibilityNodeInfo.ACTION_CLICK)//模拟响应点击事件

node.performAction(AccessibilityNodeInfo.ACTION_LONG_CLICK)//模拟响应长按事件

node.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT,bundle)//模拟响应设置输入框文本事件

node.performAction(AccessibilityNodeInfo.ACTION_SET_SELECTION)//模拟响应选择事件

node.performAction(AccessibilityNodeInfo.ACTION_CLEAR_SELECTION)//模拟响应取消选择事件

performGlobalAction(GLOBAL_ACTION_BACK)//模拟响应返回键事件

performGlobalAction(GLOBAL_ACTION_HOME)//模拟响应Home键事件

node.performAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD)//模拟响应往下滑动

node.performAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWAR D)//模拟响应往上滑动

S4:在操作测试过程中,客户端设备同时不断监听收集测试过程的UI适配问题、操作日志、崩溃日志、ANR日志、cpu占用、内存占用、耗电量:(监测项目)

S5:每秒将cpu占用、内存占用、耗电量更新到客户端设备的悬浮窗,按照预定的阈值,分为低中高三个级别,分别在悬浮窗显示不同颜色,测试工程师可根据悬浮窗颜色变化随时监测到性能预警;

S6:测试完成,测试工程师在控制端设备结束测试,向所有客户端发送结束信号,各个客户端收到信号后,通过socket将本地生成的日志和测试报告发送汇总到控制端,通过控制端导出测试报告即可。

本发明通过一句代码依赖将测试工具注入到应用程序中,达到轻量,再通过一对多的socket连接,达到一对多通讯和同步,通过无障碍服务监听和响应事件,达到同步控制,各客户端实时日志记录和预警,达到实时可视化监控。采用本发明所述的方法,通过一行代码依赖将测试组件注入到程序中,随时使用随时解耦,非常轻量,通过socket和无障碍服务实现一对多通讯和控制,省去多设备兼容测试的重复工作,无需编写固定脚本,无需反复优化脚本,可视化操控运行测试用例,覆盖更多兼容问题,自动记录和生成测试报告。

参见图3,本发明第二方面提供了一种应用程序多设备兼容测试系统,所述应用程序多设备兼容测试系统包括:

测试工具集成模块10,用于将预制测试工具集成到待测应用程序的安装包中,以使所述待测应用程序被点击打开后先进入所述预制测试工具的操作面板界面;

软件安装模块20,用于将集成有所述预制测试工具的所述应用程序安装到多台待兼容测试的设备中;

设备连接模块30,用于取多台待兼容测试的设备中的一台作为控制端,剩余待兼容测试的设备作为客户端,通过所述操作面板界面建立所述控制端与多台所述客户端之间的一对多连接;

操作事件监听模块40,用于监听用户在所述控制端上对所述待测应用程序各级界面上的操作,生成操作事件队列,并获取所述控制端生成的第一系统日志;

操作事件队列发送模块50,用于通过所述控制端和所述客户端之间的数据传输通道将所述操作事件队列发送至多台所述客户端;

操作事件模拟执行模块60,用于调用所述客户端中的无障碍服务模拟所述操作事件队列中的各项操作,并获取所述客户端生成的第二系统日志;

报告汇总模块70,用于将所述客户端产生的所述第二系统日志集回传至所述控制端,在所述控制端中汇总所述第一系统日志和所述第二系统日志得到测试报告。

在本发明第二方面一种可选的实施方式中,所述设备连接模块30包括:

控制端操作单元,用于在所述控制端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面;在所述控制端的所述操作面板界面中以固定的IP地址和端口号开启ServerSocket连接服务;

客户端操作单元,用于在所述客户端中打开所述待测应用程序,进入所述预制测试工具的所述操作面板界面;在所述客户端的所述操作面板界面中点击连接Socket,完成所述客户端与所述控制端的通讯连接。

在本发明第二方面一种可选的实施方式中,所述设备连接模块30还包括:

数据通道和线程分配单元,用于当所述控制端每接收到一个所述客户端发送的Socket连接请求,就会启用一条新的数据传输通道以及一个新的数据处理线程处理所述控制端和所述客户端之间的数据传输,并将所述客户端添加到已连接设备列表中。

在本发明第二方面一种可选的实施方式中,所述控制端操作单元和所述客户端操作单元均包括:

无障碍服务请求窗口生成子单元,用于打开所述待测应用程序,生成请求无障碍服务的窗口;

设备状态悬浮窗生成子单元,用于在所述请求无障碍服务被允许之后,进入所述预制测试工具的所述操作面板界面,同时在所述操作面板界面的角落上生成用于展示设备实时状态信息的半透明悬浮窗。

在本发明第二方面一种可选的实施方式中,所述操作事件监听模块40包括:

监听单元,用于监听用户在所述控制端上对所述待测应用程序各级界面上的操作;

事件添加单元,用于每监听到一个操作事件,便通过预置的队列添加函数将所述操作事件添加至所述操作事件队列的头部;

日志获取单元,用于在监测到操作结束之后,从所述控制端的日志存储地址中获取操作时间段内所述控制端生成的第一系统日志。

在本发明第一方面一种可选的实施方式中,所述操作事件队列发送模块50包括:

遍历单元,用于遍历与所述控制端连接的各个所述客户端;

事件取出单元,用于使用预置的队列取出函数每次从所述操作事件队列的尾部取出一个所述操作事件;

事件发送单元,用于按照遍历顺序将取出的所述操作事件依次发送至各个所述客户端,直至所述操作事件队列中的各个所述操作事件全部发送至各个所述客户端。

在本发明第二方面一种可选的实施方式中,所述预制测试工具包括权限申请模块,所述控制端和所述接收端的socket连接通讯模块,无障碍服务模块,日志输出模块以及所述操作面板界面。

图4是本发明实施例提供的一种应用程序多设备兼容测试设备的示意图,该应用程序多设备兼容测试设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器90(central processing units,CPU)(例如,一个或一个以上处理器)和存储器100,一个或一个以上存储应用程序或数据的存储介质110(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对应用程序多设备兼容测试设备中的一系列指令操作。更进一步地,处理器可以设置为与存储介质通信,在医疗平板上执行存储介质中的一系列指令操作。

本发明的应用程序多设备兼容测试设备还可以包括一个或一个以上电源120,一个或一个以上有线或无线网络接口130,一个或一个以上输入输出接口140,和/或,一个或一个以上操作系统,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图4示出的应用程序多设备兼容测试设备结构并不构成对本发明应用程序多设备兼容测试设备的具体限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述的应用程序多设备兼容测试方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 存储设备测试方法、存储设备测试系统及存储介质
  • 一种应用程序的测试方法、装置、电子设备及存储介质
  • 系统自动测试方法、装置、计算机设备及存储介质
  • WiFi非信令测试方法、系统、计算机设备和存储介质
  • 系统测试方法、设备及计算机可读存储介质
  • 应用程序兼容性测试方法、装置、计算机设备和存储介质
  • 应用程序兼容性测试方法、装置、系统及存储介质
技术分类

06120115582657