安卓界面自动化测试方法、装置及系统的制作方法

文档序号:8502117阅读:454来源:国知局
安卓界面自动化测试方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种安卓界面自动化测试方法、装置及系统。
【背景技术】
[0002]安卓界面(Android UI)自动化测试是一种通过模拟用户操作,能够自动发现Android应用中存在的缺陷的测试方法,可减少测试人员的大量重复手工测试操作,对于提高测试效率和提升测试质量具有很高的应用价值。
[0003]现有的一种Android UI自动化测试方法大致如下:首先在架构上分为测试端和服务端,测试端运行在计算机上,服务端运行在安卓设备上,测试端进行测试之前,需要在服务端将测试驱动代码和被测应用的程序源代码进行编译得到最终的被测程序,然后在安卓设备上运行被测程序,接着开始运行测试端,测试端的测试用例代码通过特定的接口层协议访问安卓设备中的接口层驱动代码,服务端调用安卓设备提供的框架操作安卓控件,由此来进行测试。
[0004]可以看出,上述方法在进行测试之前,必须获取被测应用的程序源代码,不同的被测应用的程序源代码是不同的,在无法获得被测应用的程序源代码的情况下,测试无法进行。

【发明内容】

[0005]本发明提供一种安卓界面自动化测试方法、装置及系统,在测试过程中无需获取被测应用的程序源代码就可实现自动化测试,而且不需要对应用进行重签名,还可同时测试多个应用或多个进程。
[0006]第一方面,本发明提供一种安卓界面自动化测试方法,包括:
[0007]根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识;
[0008]将所述被测应用的进程标识对应的被测进程附加到目标进程;
[0009]分别获取用于分配内存的函数在所述目标进程中的第一地址、用于加载动态链接模块的函数在所述目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在所述目标进程中的第三地址;
[0010]在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端,以使所述测试端通过所述第一服务端对所述被测进程进行测试。
[0011]进一步地,所述根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识之前,还包括:
[0012]接收所述测试端发送的所述测试信令。
[0013]进一步地,所述在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端之后,还包括:
[0014]监听到来自所述测试端的测试程序的连接后,与所述测试端建立连接;
[0015]接收所述测试程序发送的操作指令并执行所述操作指令,返回执行结果给所述测试程序。
[0016]进一步地,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。
[0017]第二方面,本发明提供一种安卓界面自动化测试方法,包括:
[0018]向服务端发送测试指令,所述测试指令包含被测应用的代码,以使所述服务端接收到所述测试指令后根据所述代码查找所述代码对应的被测应用的进程标识,在所述被测应用的进程标识对应的被测进程中创建第一服务端;
[0019]通过所述第一服务端对所述被测进程进行测试。
[0020]进一步地,所述通过所述第一服务端对所述被测进程进行测试之前,还包括:
[0021]向所述服务端发送测试程序的连接,以使所述服务端监听到所述连接后与所述测试端建立连接。
[0022]进一步地,所述通过所述第一服务端对所述被测进程进行测试,包括:
[0023]向所述服务端发送操作指令;
[0024]接收所述服务端返回的执行结果。
[0025]进一步地,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。
[0026]第三方面,本发明提供一种服务端,包括:
[0027]查找模块,用于根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识;
[0028]处理模块,用于将所述被测应用的进程标识对应的被测进程附加到目标进程;
[0029]获取模块,用于分别获取用于分配内存的函数在所述目标进程中的第一地址、用于加载动态链接模块的函数在所述目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在所述目标进程中的第三地址;
[0030]创建模块,用于在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端,以使所述测试端通过所述第一服务端对所述被测进程进行测试。
[0031]进一步地,所述服务端还包括:
[0032]接收模块,用于在所述查找模块根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识之前,接收所述测试端发送的所述测试信令。
[0033]进一步地,所述处理模块还用于在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端之后,监听来自所述测试端的测试程序的连接;
[0034]所述处理模块还用于监听到来自所述测试端的测试程序的连接后,与所述测试端建立连接;
[0035]所述接收模块还用于接收所述测试程序发送的操作指令;
[0036]所述处理模块还用于执行所述操作指令;
[0037]所述服务端还包括:发送模块,用于返回执行结果给所述测试程序。
[0038]进一步地,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。
[0039]第四方面,本发明提供一种测试端,包括:
[0040]发送模块,用于向服务端发送测试指令,所述测试指令包含被测应用的代码,以使所述服务端接收到所述测试指令后根据所述代码查找所述代码对应的被测应用的进程标识,在所述被测应用的进程标识对应的被测进程中创建第一服务端;
[0041]处理模块,用于通过所述第一服务端对所述被测进程进行测试。
[0042]进一步地,所述发送模块还用于在所述处理模块通过所述第一服务端对所述被测进程进行测试之前,向所述服务端发送测试程序的连接,以使所述服务端监听到所述连接后与所述测试端建立连接。
[0043]进一步地,所述发送模块还用于向所述服务端发送操作指令;
[0044]所述测试端还包括:
[0045]接收模块,用于接收所述服务端返回的执行结果。
[0046]进一步地,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。
[0047]第五方面,本发明提供一种测试系统,包括第三方面所述的服务端和第四方面所述的测试端。
[0048]本发明提供的安卓界面自动化测试方法、装置及系统,通过服务端根据被测应用的代码查找代码对应的被测应用的进程标识后,将被测进程附加到目标进程,接着用于
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1