安卓界面自动化测试方法、装置及系统制造方法及图纸

技术编号:11868097 阅读:116 留言:0更新日期:2015-08-12 17:07
本发明专利技术提供一种安卓界面自动化测试方法、装置及系统,该方法包括:根据被测应用的代码查找代码对应的被测应用的进程标识后,将被测进程附加到目标进程,接着分别获取用于分配内存的函数在目标进程中的第一地址、用于加载动态链接模块的函数在目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在目标进程中的第三地址,在目标进程中通过依次调用三个函数,在被测进程中创建第一服务端,使得测试端通过该第一服务端对被测进程进行测试。在测试过程中无需获取被测应用的程序源代码就可实现自动化测试,而且不需要对应用进行重签名,还可同时测试多个应用或多个进程。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种安卓界面自动化测试方法、装置及系统
技术介绍
安卓界面(Android UI)自动化测试是一种通过模拟用户操作,能够自动发现Android应用中存在的缺陷的测试方法,可减少测试人员的大量重复手工测试操作,对于提高测试效率和提升测试质量具有很高的应用价值。现有的一种Android UI自动化测试方法大致如下:首先在架构上分为测试端和服务端,测试端运行在计算机上,服务端运行在安卓设备上,测试端进行测试之前,需要在服务端将测试驱动代码和被测应用的程序源代码进行编译得到最终的被测程序,然后在安卓设备上运行被测程序,接着开始运行测试端,测试端的测试用例代码通过特定的接口层协议访问安卓设备中的接口层驱动代码,服务端调用安卓设备提供的框架操作安卓控件,由此来进行测试。可以看出,上述方法在进行测试之前,必须获取被测应用的程序源代码,不同的被测应用的程序源代码是不同的,在无法获得被测应用的程序源代码的情况下,测试无法进行。
技术实现思路
本专利技术提供一种安卓界面自动化测试方法、装置及系统,在测试过程中无需获取被测应用的程序源代码就可实现自动化测试,而且不需要对应用进行重签名,还可同时测试多个应用或多个进程。第一方面,本专利技术提供一种安卓界面自动化测试方法,包括:根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识;将所述被测应用的进程标识对应的被测进程附加到目标进程;分别获取用于分配内存的函数在所述目标进程中的第一地址、用于加载动态链接模块的函数在所述目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在所述目标进程中的第三地址;在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端,以使所述测试端通过所述第一服务端对所述被测进程进行测试。进一步地,所述根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识之前,还包括:接收所述测试端发送的所述测试信令。进一步地,所述在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端之后,还包括:监听到来自所述测试端的测试程序的连接后,与所述测试端建立连接;接收所述测试程序发送的操作指令并执行所述操作指令,返回执行结果给所述测试程序。进一步地,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。第二方面,本专利技术提供一种安卓界面自动化测试方法,包括:向服务端发送测试指令,所述测试指令包含被测应用的代码,以使所述服务端接收到所述测试指令后根据所述代码查找所述代码对应的被测应用的进程标识,在所述被测应用的进程标识对应的被测进程中创建第一服务端;通过所述第一服务端对所述被测进程进行测试。进一步地,所述通过所述第一服务端对所述被测进程进行测试之前,还包括:向所述服务端发送测试程序的连接,以使所述服务端监听到所述连接后与所述测试端建立连接。进一步地,所述通过所述第一服务端对所述被测进程进行测试,包括:向所述服务端发送操作指令;接收所述服务端返回的执行结果。进一步地,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。第三方面,本专利技术提供一种服务端,包括:查找模块,用于根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识;处理模块,用于将所述被测应用的进程标识对应的被测进程附加到目标进程;获取模块,用于分别获取用于分配内存的函数在所述目标进程中的第一地址、用于加载动态链接模块的函数在所述目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在所述目标进程中的第三地址;创建模块,用于在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端,以使所述测试端通过所述第一服务端对所述被测进程进行测试。进一步地,所述服务端还包括:接收模块,用于在所述查找模块根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识之前,接收所述测试端发送的所述测试信令。进一步地,所述处理模块还用于在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端之后,监听来自所述测试端的测试程序的连接;所述处理模块还用于监听到来自所述测试端的测试程序的连接后,与所述测试端建立连接;所述接收模块还用于接收所述测试程序发送的操作指令;所述处理模块还用于执行所述操作指令;所述服务端还包括:发送模块,用于返回执行结果给所述测试程序。进一步地,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。第四方面,本专利技术提供一种测试端,包括:发送模块,用于向服务端发送测试指令,所述测试指令包含被测应用的代码,以使所述服务端接收到所述测试指令后根据所述代码查找所述代码对应的被测应用的进程标识,在所述被测应用的进程标识对应的被测进程中创建第一服务端;处理模块,用于通过所述第一服务端对所述被测进程进行测试。进一步地,所述发送模块还用于在所述处理模块通过所述第一服务端对所述被测进程进行测试之前,向所述服务端发送测试程序的连接,以使所述服务端监听到所述连接后与所述测试端建立连接。进一步地,所述发送模块还用于向所述服务端发送操作指令;所述测试端还包括:接收模块,用于接收所述服务端返回的执行结果。进一步地,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。第五方面,本专利技术提供一种测试系统,包括第三方面所述的服务端和第四方面所述的测试端。本专利技术提供的安卓界面自动化测试方法、装置及系统,通过服务端根据被测应用的代码查找代码对应的被测应用的进程标识后,将被测进程附加到目标进程,接着用于当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种安卓界面自动化测试方法,其特征在于,包括:根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识;将所述被测应用的进程标识对应的被测进程附加到目标进程;分别获取用于分配内存的函数在所述目标进程中的第一地址、用于加载动态链接模块的函数在所述目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在所述目标进程中的第三地址;在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端,以使所述测试端通过所述第一服务端对所述被测进程进行测试。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨寿春
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1